2011-12-08 104 views
1

在一個相當小的表上創建索引後(約700行,10個colums)我開始System.Data.SqlClient.SqlException:超時由於索引而過期?

System.Data.SqlClient.SqlException:超時過期

指數爲clusterd在主鍵上。 沒有觸發器。

通過存儲過程進行更新時發生所有這些錯誤。 我刪除索引後,我沒有更多的超時問題。

設置CommandTimeout沒有幫助。 有沒有人知道爲什麼會發生這種情況?

存儲過程(這裏沒有什麼特別)

Update objects set [email protected]_last_datacollect, 
date_last_error='',message_last_error='' where objectid = @objectid 

表結構

CREATE TABLE [dbo].[objects](
[id] [int] IDENTITY(1,1) NOT NULL, 
[objectid] [nvarchar](50) NULL, 
[name] [nvarchar](max) NULL, 
[adminid] [nvarchar](50) NULL, 
[token] [nvarchar](max) NULL, 
[type] [nvarchar](max) NULL, 
[date_added] [date] NULL, 
[date_last_update] [datetime] NULL, 
[date_last_datacollect] [datetime] NULL, 
[date_last_error] [datetime] NULL, 
[message_last_error] [nvarchar](max) NULL, 
[active] [bit] NULL, 
[logourl] [nchar](255) NULL 
) ON [PRIMARY] 

編輯: 看我的表結構後,我意識到這可能是由於缺少主鍵?

+1

你執行的代碼是什麼?你有觸發器嗎?依賴? –

+0

我的水晶球被凍結並且出現故障......請向我們展示**表格結構**,告訴我們您有什麼**索引**,並向我們展示**用於查詢表格的代碼**。 ... –

+0

這必須是700行導致超時的索引的一個地獄。您的磁盤系統是否在同一時間負載較重?無論如何,你的超時設置是什麼。如果它只是一個關於PK的索引,我無法理解這種行爲。如果您在management studio中執行相同的存儲過程,那麼查詢計劃是什麼? – Pleun

回答

0

您是否嘗試過更新表格上的統計信息?