sp_updatestats (Transact-SQL)

对当前数据库中所有用户定义表和内部表运行 UPDATE STATISTICS。

主题链接图标Transact-SQL 语法约定

语法

sp_updatestats [ [ @resample = ] 'resample']

参数

  • [ @resample =] 'resample'
    指定 sp_updatestats 使用 UPDATE STATISTICS 语句的 RESAMPLE 选项。新统计信息将继承旧统计信息的抽样比率。如果未指定 'resample',则 sp_updatestats 将使用默认的抽样来更新统计信息。该参数的数据类型为 varchar(8),默认值为 NO。

返回代码值

0(成功)或 1(失败)

备注

通过指定 ALL 关键字,sp_updatestats 可以对数据库中的所有用户定义表和内部表有效地执行 UPDATE STATISTICS。sp_updatestats 将显示指示其进度的消息。完成更新之后,此存储过程将报告已为所有的表更新了统计信息。sp_updatestats 还会更新禁用的非聚集索引的统计信息。sp_updatestats 将忽略具有禁用的聚集索引的表。

在 SQL Server 2005 中,sp_updatestats 将基于 sys.sysindexes 兼容性视图中的 rowmodctr 信息,只更新那些需要更新的统计信息;从而防止对未更改项进行不必要的更新。

对于兼容性级别低于 90 的数据库,如果执行 sp_updatestats,将对当前数据库内每个表中的所有索引和统计信息重置自动 UPDATE STATISTICS 设置。有关详细信息,请参阅 sp_autostats (Transact-SQL)。对于兼容性级别为 90 或更高的数据库,sp_updatestats 将保留任何特定索引或统计信息的自动 UPDATE STATISTICS 设置。

权限

要求具有 sysadmin 固定服务器角色的成员身份或数据库 (dbo) 的所有者身份。

示例

以下示例更新 AdventureWorks 数据库中各表的统计信息。

USE AdventureWorks;
GO
EXEC sp_updatestats 

请参阅

参考

数据库引擎存储过程 (Transact-SQL)
ALTER DATABASE (Transact-SQL)
CREATE INDEX (Transact-SQL)
CREATE STATISTICS (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL)
sp_createstats (Transact-SQL)
sp_dbcmptlevel (Transact-SQL)
系统存储过程 (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助