小编Cas*_*ins的帖子

随机插入需要 10+ 秒才能完成

我有一个由 .NET Entity Framework 生成的插入语句。在大多数情况下,根据 SQL Server Profiler,此特定插入将在 0 毫秒内执行。

每 30 个左右的插入中就有一个将跳转到长达 12 秒的持续时间,导致另一端的 .NET 客户端在等待时显示为“无响应”。服务器负载应该不是问题,因为我们的服务器负载非常非常轻。

这是正在对其执行插入的表:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[ProductEvents](
[EventID] [int] IDENTITY(1,1) NOT NULL,
[KID] [int] NOT NULL,
[EventDescription] [varchar](50) NOT NULL,
[EventDate] [datetime] NOT NULL,
[UserName] [varchar](50) NOT NULL,
[Notes] [varchar](max) NOT NULL,
[Version] [timestamp] NOT NULL,
[IsSynchronized] [bit] NOT NULL,
[LastSyncDate] [datetime] NULL,
 CONSTRAINT [PK_ProductEvents] PRIMARY KEY CLUSTERED 
([EventID] ASC ) WITH (PAD_INDEX = …
Run Code Online (Sandbox Code Playgroud)

sql-server insert

5
推荐指数
1
解决办法
825
查看次数

SSMS 缺失索引功能建议的这两个索引是否应该合并?

我正在尝试提高由实体框架自动生成的特定查询的性能。我已经通过 SSMS 运行了查询,它建议创建两个缺失的索引。有问题的表:

CREATE TABLE [dbo].[PackageEvents]
(
[EventID] [int] NOT NULL IDENTITY(1, 1),
[PackageID] [char] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[EventDescription] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[EventDate] [datetime] NOT NULL,
[UserName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Notes] [varchar] (max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[IsSynchronized] [bit] NOT NULL CONSTRAINT [DF_AmazonPackageEvents_IsSynchronized]  
  DEFAULT ((0)),
[LastSyncDate] [datetime] NULL,
[Version] [timestamp] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

SSMS 建议了以下两个索引:

CREATE NONCLUSTERED INDEX [IX_IsSynchronized] ON [dbo].[PackageEvents]  
([IsSynchronized]) INCLUDE ([PackageID])

CREATE NONCLUSTERED INDEX [IX_Covering] ON [dbo].[PackageEvents] ([PackageID])  
INCLUDE …
Run Code Online (Sandbox Code Playgroud)

database-design sql-server index-tuning sql-server-2012

1
推荐指数
1
解决办法
316
查看次数