sp_autostats (Transact-SQL)
顯示或變更索引、統計資料物件、資料表或索引檢視表的自動統計資料更新選項 AUTO_UPDATE_STATISTICS。
如需有關 AUTO_UPDATE_STATISTICS 選項的詳細資訊,請參閱<ALTER DATABASE SET 選項 (Transact-SQL)>和<使用統計資料來改善查詢效能>。
語法
sp_autostats [ @tblname = ] 'table_or_indexed_view_name'
[ , [ @flagc = ] 'stats_value' ]
[ , [ @indname = ] 'statistics_name' ]
引數
[ @tblname= ] 'table_or_indexed_view_name'
這是要顯示 AUTO_UPDATE_STATISTICS 選項之資料表或索引檢視表的名稱。table_or_indexed_view_name 是 nvarchar(776),沒有預設值。[ @flagc= ] 'stats_value'
將 AUTO_UPDATE_STATISTICS 選項更新為下列其中一個值:ON = ON
OFF = OFF
沒有指定 stats_flag 時,顯示目前的 AUTO_UPDATE_STATISTICS 設定。stats_value 是 varchar(10),預設值為 NULL。
[ @indname= ] 'statistics_name'
這是要顯示或更新 AUTO_UPDATE_STATISTICS 選項之統計資料的名稱。若要顯示索引的統計資料,您可以使用索引的名稱。索引及其對應的統計資料物件會具有相同的名稱。statistics_name 是 sysname,預設值是 NULL。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
如果您指定了 stats_flag,sp_autostats 就會報告所採取的動作,但是不會傳回任何結果集。
如果未指定 stats_flag,sp_autostats 會傳回下列結果集。
資料行名稱 |
資料類型 |
描述 |
---|---|---|
Index Name |
varchar(60) |
索引或統計資料的名稱。 |
AUTOSTATS |
varchar(3) |
AUTO_UPDATE_STATISTICS 選項的目前值。 |
Last Updated |
datetime |
最近更新統計資料的日期。 |
資料表或索引檢視表的結果集包括針對索引所建立的統計資料、使用 AUTO_CREATE_STATISTICS 選項所產生的單一資料行統計資料,以及使用 CREATE STATISTICS 陳述式所建立的統計資料。
備註
如果停用了指定的索引,或指定的資料表具有停用的叢集索引,就會顯示一則錯誤訊息。
權限
若要變更 AUTO_UPDATE_STATISTICS 選項,您需要 db_owner 固定資料庫角色中的成員資格,或 table_name 的 ALTER 權限。若要顯示 AUTO_UPDATE_STATISTICS 選項,您需要 public 角色中的成員資格。
範例
A. 顯示資料表上所有統計資料的狀態
下列範例會顯示 Product 資料表上所有統計資料的狀態。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product';
GO
B. 針對資料表的所有統計資料啟用 AUTO_UPDATE_STATISTICS
下列範例會針對 Product 資料表的所有統計資料啟用 AUTO_UPDATE_STATISTICS 選項。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product', 'ON';
GO
C. 針對特定索引停用 AUTO_UPDATE_STATISTICS
下列範例會針對 Product 資料表的 AK_Product_Name 索引停用 AUTO_UPDATE_STATISTICS 選項。
USE AdventureWorks;
GO
EXEC sp_autostats 'Production.Product', 'OFF', AK_Product_Name;
GO