徵狀
假設您在 Microsoft SQL Server 2012 中使用了 sequence 物件。 當您查看會話的執行狀態時,您可能會發現檢查點進程與插入新序列值的會話之間出現未檢測到的鎖死。 在這種情況下,會話會無限期暫停。注意: 當您關閉封鎖的會話時,SQL Server 進程就會停止。
原因
出現這個問題的原因是檢查點執行緒嘗試清除序列。 但在 sysobjvalues 表格中找不到它的列。 這是因為另一個執行緒會在具有順序的下一個值的事務上執行回滾,在此情況下,會從 sysobjvalues 資料表中移除該資料列。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2012 SP2 累積更新2 /en-us/help/2983175
SQL Server 2012 SP1 累積更新11 /en-us/help/2975396
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。