Sql-Server-2016

SSD 驅動器是否會使索引重建和更新統計資訊對 SQL Server 無用?

  • November 23, 2021

現在,SSD 已成為事實上的標準。重建索引和更新統計數據的維護工作,例如使用 Ola Hallengren https://ola.hallengren.com/jobs,是否可以僅按需而不是定期完成,例如使用 Microsoft SQL Server 2017 或更低版本的每週一次?

如果仍然需要,決定何時需要的數據庫大小門檻值是多少?

我不同意 SSD 是事實上的標準,儘管它們肯定比不久前更普遍。我知道我的公司沒有製定任何標準,但我們幾乎所有的虛擬數據庫伺服器仍然使用自動分層的部分快閃記憶體 SAN,這與我的更好判斷相反

不幸的是,我將以“這取決於”開始我的回答。

一般來說,索引維護遠不如前幾年和舊版本重要 - 特別是過去僅離線的長時間和深度索引重建。“如果> 30%碎片化,則重組一切並重建”的日子已經結束了。我想大多數人都會同意重建不再值得做,而 SSD 確實在其中發揮了作用。

另一方面,統計數據與磁碟上數據的碎片和物理分佈關係不大,而與數據在表之間/表之間的邏輯分佈有關,因此這仍然很重要。對於給定的工作負載是否重要取決於許多因素。

如果您可以在非 Prod 系統中測試停止這些維護常式,則可以查找性能不佳的查詢,然後在執行計劃中分析數據庫引擎的步驟。通過查看執行計劃中的運算符並看到“估計的行數”與“實際的行數”之間的巨大差異,我看到的所有統計問題(我最近一直在處理一些問題)都很容易看到”。如果查詢執行得不夠好,請執行快速統計更新並重試。完成所有這些步驟需要一些工作,但是一旦您掌握了系統,您就可以判斷統計維護工作是無價值的成本還是重要和必要的。

Erin Stellato 有幾篇關於統計數據的精彩部落格文章,這些文章可以幫助提供有關新統計數據為何重要的背景資訊,以及它們何時最有用以及如何檢測它們是否更新得不夠頻繁。

重建索引後,我們獲得了巨大的性能提升。某些索引上的 avg_fragmentation_in_percent 最初甚至高於 95%。我不確定重建的哪個部分,或者是否是新統計數據的計算。我們將進一步監測。

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15

引用自:https://dba.stackexchange.com/questions/190859