sp_autostats (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
顯示或變更索引、統計數據對象、數據表或索引檢視表的自動統計數據更新選項 AUTO_UPDATE_STATISTICS
。
如需選項 AUTO_UPDATE_STATISTICS
的詳細資訊,請參閱 ALTER DATABASE SET 選項 和 統計數據。
語法
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
但不會傳回任何結果集。
如果未 指定@flagc , sp_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