1
我在SQL Server 2008 R2中有一個表,主鍵爲Guid
類型。經過幾天的測試數據庫,現在這個表有7000行。SQL Server 2008 R2:使用guid主鍵更新表時出現超時異常
我有一個查詢,當數據約1000條記錄的作品,但現在沒有。
查詢是:
update Ticket
set AlphaCode = "Hi"
where TicketId = 'fe0b840d-5688-4f38-a1fe-46eb6ff04296'
的AlphaCode
列的數據類型是nvarchar(1024)
。
上一個查詢有時會在大約10秒內運行!但是,很多時候它失敗
超時異常
有趣的是,下面的查詢返回的記錄,在不到一秒鐘:
select *
from Ticket
where TicketId = 'fe0b840d-5688-4f38-a1fe-46eb6ff04296'
這意味着, DBMS引擎沒有困難找到我的記錄,但問題在於更新操作。
也許你在該表上有一個不好的索引需要修復。 – Kalpers 2013-03-17 01:44:29
是主鍵聚簇索引,以及guid如何生成,並且您是否設想該表超過10k行?碎片整理表並嘗試它可能會有所幫助。 – 2013-03-17 04:28:48
Ticket表上是否有觸發器?它們在更新中調用(並可能導致一些鎖),而不是在select中。 – 2013-03-17 09:59:08