0

我們有一個大型數據倉庫數據庫,我們不斷地在5個不同的表中插入新行,在左側(編輯:右側) - b-樹的一側(=在表的結尾)刪除已過濾的統計信息導致死鎖

這意味着有關新數據的普通統計數據很快就會過時。 所以我們已經改變了我們的插入過程,同時用WHERE子句做了CREATE STATISTICS FST_xxx ,這個WHERE子句覆蓋了最近200萬行。

這確保了我們不會得到不正確的執行計劃。 現在我們正處於數百個這樣的狀態。 我們有一個每天運行一次的清理作業,將會丟棄不需要的統計數據。

但這會導致很多死鎖。

有沒有辦法可以禁用過濾的統計信息或刪除過濾的統計信息而不會導致死鎖?

(編輯:)該表聚集在一個Bigint身份(1,1)發送。

回答

1

您能否澄清行正在插入的位置?你說過B型樹的左手邊,但你也說過桌子的末端。假設你正在談論的聚集索引是否正確?無論是否聚集,索引鍵是否升高?謝謝。

+0

抱歉,我的錯誤。是的,它是右手邊,桌子是聚集的,Bigint身份(1,1)上升。 –

+1

您可能要考慮使用跟蹤標誌2389.這裏有更多信息:http://blogs.msdn.com/b/ianjo/archive/2006/04/24/582227.aspx和https:// www。 simple-talk.com/sql/database-administration/statistics-on-ascending-columns/與任何跟蹤標誌一樣,我建議在將其投入生產之前進行測試。 –

+0

非常感謝您的兩個鏈接。我將調查這些跟蹤標誌。 –

1

爲什麼不嘗試更新統計信息而不是每次都創建一個新統計信息?

+0

表格相當大,需要花費相當多的時間來提取,並且會招致很多額外的I/O –