Sql-Server
解決內部並行查詢死鎖
我們在生產環境中遇到了死鎖。似乎受害者和勝利者是同一個spid。我們每天重建/重組索引,我們沒有發現任何失去的索引。
你們有沒有遇到過這種情況,如果有,你們是如何解決的?任何建議表示讚賞。
此外,這裡的
我們使用的是 SQL Server 2017 SP2。
首先,查詢內並行死鎖始終是 SQL Server 錯誤。除了更新 SQL Server、打開支持案例、抑制並行性(例如添加 MAXDOP 1 提示)或嘗試獲取使用更簡單計劃的查詢之外,您無能為力來修復它們。
在這種情況下,在 EF 中,如果可以,請將UseDatabaseNullSemantics設置為 true。否則,EF 查詢轉換器會生成模擬 C# 空比較語義的 TSQL 查詢。這將清除查詢中的 NULL 處理。
除此之外,這個查詢似乎是一個視圖,與另一個表連接,然後是一個分頁查詢。因此,如果您可以弄清楚意圖是什麼,則可能可以簡化。