狀況
請考慮下列情況:
-
您執行改變索引...線上Microsoft SQL Server 2012年或 SQL Server 2014年查詢。
-
這項查詢會中止,因為死結或在使用者啟始的動作,例如執行 kill 命令,或取消查詢。
在這個案例中,任何 DML 作業,必須使用索引中繼資料會被封鎖或需要長的時間才能完成。
此外,您可能會遇到下列徵狀︰
-
當您查詢sys.dm_os_wait_stats和sys.dm_exec_requests動態管理檢視 (DMV) 時,較高的值, PWAIT_MD_RELATION_CACHE或MD_LAZYCACHE_RWLOCK等待類型
-
當您查詢sys.dm_os_spinlock_stats DMV 時,較高的值為 SOS_RW 等待類型
這個問題通常被上述為每個新的 DML 查詢緩慢清除同步物件時,就會發生鎖定群組。由於等待同步物件的性質,CPU 使用率是通常有限。
解決方案
累積更新資訊
下列的累積更新 SQL Server 的第一次修正問題。
SQL Server 2014年累積更新 1/en-us/help/2931693
SQL Server 2012 sp1 的累積更新 9/en-us/help/2931078
SQL Server 的每個新的累積更新包含的所有修補程序與安全性修正,全都包含在先前的累積更新。检验 SQL Server 的最新的累積更新︰
Hotfix 資訊
支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。
如果 Hotfix 可供下載,在此知識庫文件頂端將出現<有可用的 Hotfix 供您下載>區段。如果這個區段不會出現,將要求提交給 Microsoft 客戶服務及支援取得 Hotfix。
注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用其他支援問題,以及此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意「 可下載 Hotfix 」表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。
重要在套用此 hotfix,改變索引之後...線上可以中止查詢,而不降低 SQL Server 的效能。
因應措施
若要解決這個問題,您可以清除中繼資料項目,以避免鎖定群組和潛在降低查詢效能的重新編譯循環。若要這樣做,請使用下列方法之一來協助清除中繼資料的項目︰
-
重新啟動 SQL Server 2012年或 SQL Server 2014年的執行個體。
-
有問題的資料庫放在離線的狀態,然後重新連線一次。
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。