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 AdventureWorks2008R2;
GO
EXEC sp_autostats 'Production.Product';
GO

B. 为表上的所有统计信息启用 AUTO_UPDATE_STATISTICS

下面的内容为 Product 表上的所有统计信息启用 AUTO_UPDATE_STATISTICS 选项。

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

C. 为特定索引禁用 AUTO_UPDATE_STATISTICS

以下示例为 Product 表上的 AK_Product_Name 索引禁用 AUTO_UPDATE_STATISTICS 选项。

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