SQL Server在简单的insert语句中很慢

时间:2015-07-03 15:51:45

标签: c# sql-server database-performance

有人遇到过这个问题吗?一个简单的insert语句花了7秒钟,这个表包含300行记录。这张桌子上没有触发器。

表:

CREATE TABLE [dbo].[Table]
(
    [intMsgIn] [int] IDENTITY(1,1) NOT NULL,
    [charType] [char](4) NOT NULL,
    [dtTrx] [datetime] NOT NULL,
    [varMsg] [varchar](4000) NULL,

    CONSTRAINT [PK_Tbl] PRIMARY KEY CLUSTERED ([intMsgIn] ASC)
        WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
              IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, 
              ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

SQL语句:

INSERT INTO Table (charType, dtTrx, varMsg)  
VALUES(@charType, getdate(), @varMsg)  

SELECT @@IDENTITY  

此SQL语句是存储过程中的代码,然后由C#应用程序调用。

造成这种缓慢的任何可能原因?

1 个答案:

答案 0 :(得分:0)

只是一个简单的提示。再试一次,看看sp_who2 N'ACTIVE'。它应该显示所有活动的运行查询。您将拥有一个名为BlkBy的列。

由于您的查询非常简单,我确信应该有任何类型的锁定。列BlkBy会为您提供阻止您的任务的SPID。在这种情况下,您可以重新检查是否存在生成另一个锁的并发INSERTUPDATEDELETE - 语句。

如果要快速测试sp_who2,您还可以设置跟踪并检查INSERT期间是否有任何锁定的结果。