sp_autostats (Transact-SQL)
顯示或變更特定索引和統計資料的自動 UPDATE STATISTICS 設定,或目前資料庫中指定的資料表或索引檢視之所有索引和統計資料的自動 UPDATE STATISTICS 設定。
附註: |
---|
在這個預存程序的內容中,索引一詞是指資料表或檢視的統計資料。 |
語法
sp_autostats [ @tblname = ] 'table_name'
[ , [ @flagc = ] 'stats_flag' ]
[ , [ @indname = ] 'index_name' ]
引數
[ @tblname= ] 'table_name'
這是要顯示自動 UPDATE STATISTICS 設定的資料表或檢視名稱。table_name 是 nvarchar(776),沒有預設值。如果提供了 index_name,SQL Server 2005 會修改這個索引的自動 UPDATE STATISTICS 設定。
[ @flagc= ] 'stats_flag'
指定資料表、檢視或索引的自動 UPDATE STATISTICS 設定:
ON = 已啟用
OFF = 已停用
stats_flag 是 varchar(10),預設值是 NULL。
[ @indname= ] 'index_name'
這是要啟用或停用自動 UPDATE STATISTICS 設定的索引名稱。index_name 是 sysname,預設值是 NULL。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
如果指定 stats_flag 的話,這個程序會報告所採取的動作,但不會傳回結果集。
如果未指定 stats_flag,sp_autostats 會傳回下列結果集。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
Index Name |
varchar(60) |
索引的名稱。 |
AUTOSTATS |
varchar(3) |
目前的自動 UPDATE STATISTICS 設定:OFF 或 ON。 |
Last Updated |
datetime |
上次更新統計資料的日期。 |
備註
如果停用了指定的索引,或指定的資料表具有停用的叢集索引,就會顯示一則錯誤訊息。
權限
變更自動 UPDATE STATISTICS 設定需要 db_owner 固定資料庫角色中的成員資格,或 table_name 的 ALTER 權限。顯示自動 UPDATE STATISTICS 設定需要 public 角色中的成員資格。
範例
A. 顯示資料表所有索引的目前狀態
下列範例會顯示 Product
資料表所有索引目前的統計資料狀態。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product';
B. 啟用資料表所有索引的自動統計資料
下列範例會啟用 Product
資料表所有索引的自動統計資料設定。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product', 'ON';
C. 停用特定索引的自動統計資料
下列範例會停用 Product
資料表之 AK_Product_Name
索引的自動統計資料設定。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product', 'OFF', AK_Product_Name;
請參閱
參考
Database Engine 預存程序 (Transact-SQL)
ALTER DATABASE (Transact-SQL)
CREATE INDEX (Transact-SQL)
CREATE STATISTICS (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS (Transact-SQL)
sp_createstats (Transact-SQL)
系統預存程序 (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)