Sql-Server
在 SQL Server 中禁用自動統計
我對 SQL Server 中的自動統計有幾個問題:
- 我知道我可以使用以下語句來檢查數據庫自動統計是否被禁用,但是是否有語句來檢查特定索引的自動統計是否被禁用?
SELECT DATABASEPROPERTYEX('Databasename','IsAutoUpdateStatistics')
- 如果我在重組作業之前禁用索引的自動統計,它會阻止 SQL Server 中的阻塞問題嗎?
在以下連結中,您可以在數據庫級別禁用自動統計資訊https://msdn.microsoft.com/en-us/library/ms188775.aspx
是否有檢查特定索引的自動統計是否被禁用的語句?
您可以使用
sys.sp_autostats
或sys.stats
來獲取此資訊。
sys.sp_autostats
也可用於啟用或禁用特定統計對象的自動更新。例如,使用AdventureWorks 範例數據庫:
EXECUTE sys.sp_autostats @tblname = N'[Production].[TransactionHistory]', @flagc = NULL, @indname = NULL;
該
AUTOSTATS
列顯示統計資訊是否會自動刷新:SELECT S.name, S.stats_id, S.auto_created, S.user_created, S.no_recompute FROM sys.stats AS S WHERE S.[object_id] = OBJECT_ID(N'[Production].[TransactionHistory]', N'U');
該
no_recompute
列顯示是否將跳過自動統計資訊更新:如果我在重組作業之前禁用索引的自動統計,它會防止阻塞問題嗎?
重組索引不會更新統計資訊。您可能需要澄清您的問題以解釋您遇到的確切問題。