1
任何人都遇到過這個問題嗎?一個簡單的插入語句需要7秒鐘,而這個表格包含300行記錄。這張桌子上沒有觸發器。簡單插入語句中的SQL Server緩慢
表:
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#應用程序調用。
任何可能的原因導致這種緩慢?
DB還在做什麼?有沒有可能會鎖定表的查詢? –
我建議使用**'SCOPE_IDENTITY()**而不是其他任何東西(如'@@ IDENTITY')來獲取新插入的標識值。 [請參閱此博客文章,瞭解有關WHY的解釋](http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity -of-record /) –
請注意,不要使用'@@ IDENTITY',使用'SCOPE_IDENTITY()'。 – Kaf