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;
请参阅
参考
数据库引擎存储过程 (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)