sp_autostats (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

显示或更改索引、统计信息对象、表或索引视图的自动统计信息更新选项 AUTO_UPDATE_STATISTICS

有关该选项的详细信息 AUTO_UPDATE_STATISTICS ,请参阅 ALTER DATABASE SET 选项统计信息

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 选项。 @flagcvarchar(10),可以是以下值之一:

说明
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

以下示例为表上的所有统计信息Production.Product启用AUTO_UPDATE_STATISTICS该选项。

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