sp_autostats (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

顯示或變更索引、統計數據對象、數據表或索引檢視表的自動統計數據更新選項 AUTO_UPDATE_STATISTICS

如需選項 AUTO_UPDATE_STATISTICS 的詳細資訊,請參閱 ALTER DATABASE SET 選項 (Transact-SQL)統計數據

Transact-SQL 語法慣例

語法

sp_autostats
    [ @tblname = ] N'tblname'
    [ , [ @flagc = ] 'flagc' ]
    [ , [ @indname = ] N'indname' ]
[ ; ]

引數

[ @tblname = ] N'tblname'

要顯示 AUTO_UPDATE_STATISTICS 選項之數據表或索引檢視表的名稱。 @tblname為 nvarchar(776),沒有預設值。

[ @flagc = ] 'flagc'

更新 或顯示AUTO_UPDATE_STATISTICS選項。 @flagc為 varchar(10),而且可以是下列其中一個值:

Description
ON 另一
OFF 關閉
未指定 顯示目前的 AUTO_UPDATE_STATISTICS 設定

[ @indname = ] N'indname'

要顯示或更新 AUTO_UPDATE_STATISTICS 選項的統計數據名稱。 @indname為 sysname 預設值為 NULL。 若要顯示索引的統計數據,您可以使用索引的名稱;索引及其對應的統計數據物件具有相同的名稱。

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

如果 指定了@flagc ,則會報告已採取的動作, sp_autostats 但不會傳回任何結果集。

如果未 指定@flagcsp_autostats 則傳回下列結果集。

資料行名稱 資料類型 描述
Index Name sysname 索引或統計數據的名稱。
AUTOSTATS varchar(3) 選項的 AUTO_UPDATE_STATISTICS 目前值。
Last Updated datetime 最新統計數據更新的日期。

數據表或索引檢視的結果集包含針對索引建立的統計數據、使用 AUTO_CREATE_STATISTICS CREATE STATISTICS 語句所建立的選項和統計數據所產生的單一數據行統計數據。

備註

如果指定的索引已停用,或指定的數據表具有已停用的叢集索引,則會顯示錯誤訊息。

AUTO_UPDATE_STATISTICS 記憶體優化數據表一律為 OFF。

權限

若要變更AUTO_UPDATE_STATISTICS選項,您需要db_owner固定資料庫角色的成員資格,或ALTER@tblname的許可權

若要顯示AUTO_UPDATE_STATISTICS選項,您需要公用角色的成員資格。

範例

A. 顯示數據表上所有統計數據的狀態

下列顯示數據表上 Production.Product 所有統計數據的狀態。

USE AdventureWorks2022;
GO
EXEC sp_autostats 'Production.Product';
GO

B. 針對數據表上的所有統計數據啟用AUTO_UPDATE_STATISTICS

下列範例會啟用 AUTO_UPDATE_STATISTICS 數據表上 Production.Product 所有統計數據的選項。

USE AdventureWorks2022;
GO
EXEC sp_autostats 'Production.Product', 'ON';
GO

C. 停用特定索引的AUTO_UPDATE_STATISTICS

下列範例會AUTO_UPDATE_STATISTICS停用數據表上Production.Product索引的選項AK_Product_Name

USE AdventureWorks2022;
GO
EXEC sp_autostats 'Production.Product', 'OFF', AK_Product_Name;
GO