sp_autostats (Transact-SQL)

顯示或變更索引、統計資料物件、資料表或索引檢視表的自動統計資料更新選項 AUTO_UPDATE_STATISTICS。

如需有關 AUTO_UPDATE_STATISTICS 選項的詳細資訊,請參閱<ALTER DATABASE SET 選項 (Transact-SQL)>和<使用統計資料來改善查詢效能>。

主題連結圖示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

變更記錄

更新的內容

修訂整份文件以改善精確度。

此主題會參考<使用統計資料來改善查詢效能>主題中的新統計資料內容。