Sql-Server
並行統計更新
在 SQL Server 2008 或更高版本中,是
UPDATE STATISTICS WITH FULLSCAN
單執行緒操作還是可以使用並行?使用預設採樣更新統計資訊怎麼樣 - 它可以使用並行性嗎?我沒有看到指定MAXDOP
更新統計資訊的選項。
並行統計更新自 SQL Server 2005 以來一直可用。它記錄在 TechNet 文章“Microsoft SQL Server 2005 中查詢優化器使用的統計”中:
在執行完整掃描的情況下(無論是否明確請求),為數據收集生成的內部查詢具有以下一般形式:
SELECT StatMan([SC0]) FROM ( SELECT TOP 100 PERCENT [Column] AS [SC0] FROM [Table] WITH (READUNCOMMITTED) ORDER BY [SC0] ) AS _MS_UPDSTATS_TBL OPTION (MAXDOP 16)
注意
MAXDOP
那裡的提示(儘管使用者無法手動指定提示)。在收集抽樣統計資訊的地方,內部查詢使用該TABLESAMPLE
子句,這會阻止並行性。引擎還會MAXDOP 1
在內部查詢上生成一個提示,這有點多餘。如果您需要降低並行度,可以使用資源調控器(僅限企業)
MAXDOP
覆蓋內部查詢中的提示。SQL Server 2016增加了並行採樣統計更新。