Sql-Server
SQL Server CHECKDB 性能的多卷與單卷
我們在 SQL Server 2017 Enterprise CU21 上有一個約 10TB 的數據庫,其中包含數十個數據文件。當所有文件都在單個卷上而不是多個卷上時,我們看到 CHECKDB 性能較慢。(在這兩種情況下,都涉及相同的高端(純)儲存、相同的 VM 主機、相同的儲存網路——只是卷的數量不同。)
跨多個卷傳播數據文件是否有記錄的優勢,無論是專門針對 DBCC CHECKDB,還是針對一般 SQL Server?
KB 2634571中描述的跟踪標誌 2549告訴 CHECKDB 將每個數據庫文件視為位於唯一驅動器上。但是,當涉及多個卷時,是否有任何其他官方文件概述了 SQL Server(或特別是 CHECKDB)如何以不同的方式處理 IO?
這是你要找的嗎?
https://techcommunity.microsoft.com/t5/sql-server-support/a-faster-checkdb-8211-part-ii/ba-p/316882
在這篇部落格的結尾,鮑勃·沃德說:
還有一些因素會影響這些更改是否真的有助於加快 CHECKDB 的執行速度:
…
跨磁碟分佈文件 – 與伺服器查詢的一般性能一樣,如果我們將讀取分佈在不同的物理磁碟上以獲取文件,我們可以實現更好的 I/O 性能。
也許這個是相關的?
如果我理解正確,本文描述瞭如何使用數據庫數據文件的路徑創建 CHECKDB 隱藏內部數據庫快照的文件(2014 年之前的命名流)。如果數據庫有多個數據文件分佈在多個卷上,則快照文件(以及它們的 IO)也分佈在相同的捲上。