首页 > 其他 > 详细

统计--自动更新统计

时间:2014-02-18 15:52:49      阅读:237      评论:0      收藏:0      [点我收藏+]

当数据库设置为自动更新统计后,SQL Server 监控表中的数据更改,当更改满足一下条件之一时更新:
1.向空表插入数据时
2.少于500行的表增加500行或者更多
3.当表中行多于500行时,数据的变化量大于20%时
(在SQL SERVER 2000中,指的是20%的行被修改,而在SQL SERVER 2005/2008中,指的是20%的列数据被修改)
?
可以手动使用UPDATE STATISTICS 或EXEC sys.sp_updatestats来更新统计
UPDATE STATISTICS 需要锁表
UPDATE STATISTICS table_or_indexed_view_name
    [
        {
            { index_or_statistics__name }
          | ( { index_or_statistics_name } [ ,...n ] )
                }
    ]
    [    WITH
        [
            FULLSCAN
            | SAMPLE number { PERCENT | ROWS }
            | RESAMPLE
            | <update_stats_stream_option> [ ,...n ]
        ]
        [ [ , ] [ ALL | COLUMNS | INDEX ]
        [ [ , ] NORECOMPUTE ]
    ] ;

<update_stats_stream_option> ::=
    [ STATS_STREAM = stats_stream ]
    [ ROWCOUNT = numeric_constant ]
    [ PAGECOUNT = numeric_contant ]
table_or_indexed_view_name
要更新其统计信息的表或索引视图的名称。

index_or_statistics_name
要更新其统计信息的索引的名称,或要更新的统计信息的名称。如果不指定 index_or_statistics_name,则查询优化器将更新表或索引视图的所有统计信息。 这包括使用 CREATE STATISTICS 语句创建的统计信息、在

AUTO_CREATE_STATISTICS 为 ON 时创建的单列统计信息以及为索引创建的统计信息。
有关 AUTO_CREATE_STATISTICS 的详细信息,请参阅 ALTER DATABASE SET
选项 (Transact-SQL)。若要查看某一表或视图的所有索引,您可以使用 sp_helpindex。

FULLSCAN
通过扫描表或索引视图中的所有行来计算统计信息。FULLSCAN 和 SAMPLE 100 PERCENT
的结果相同。 FULLSCAN 不能与 SAMPLE
选项一起使用。

SAMPLE number { PERCENT | ROWS }
指定当查询优化器更新统计信息时要为其使用的表或索引视图中近似的百分比或行数。对于 PERCENT,number 可以介于 0 到 100 之间;对于 ROWS,number 可以介于 0
到总数行之间。 查询优化器抽样的实际行百分比或行数可能与指定的行百分比或行数不匹配。 例如,查询优化器扫描数据页上的所有行。 对于基于默认抽样的查询计划并非最佳的特殊情况,SAMPLE 非常有用。在大多数情况下,不必指定

SAMPLE,这是因为在默认情况下,查询优化器根据需要采用抽样,并以统计方式确定大量样本的大小,以便创建高质量的查询计划。
SAMPLE 不能与 FULLSCAN 选项一起使用。如果未指定 SAMPLE 和 FULLSCAN,查询优化器则默认使用抽样数据并计算样本大小。
我们建议不指定 0 PERCENT 或 0 ROWS。如果指定 0 PERCENT 或 0 ROWS,则将更新统计信息对象,但该对象不包含任何统计信息数据。

RESAMPLE
使用最近的采样速率更新每个统计信息。
使用 RESAMPLE 会导致全表扫描。例如,索引的统计信息使用全表扫描来获取其采样速率。 如果未指定采样选项(SAMPLE、FULLSCAN、RESAMPLE),则查询优化器默认将对数据进行抽样并计算样本大小。
ALL | COLUMNS | INDEX
更新所有现有统计信息、在一列或多列上创建的统计信息或为索引创建的统计信息。如果未指定上述任何选项,则 UPDATE STATISTICS
语句将更新表或索引视图上的所有统计信息。

NORECOMPUTE
为指定统计信息禁用自动统计信息更新选项

AUTO_UPDATE_STATISTICS。如果指定此选项,则查询优化器将完成此统计信息更新并禁用将来的更新。
若要重新启用 AUTO_UPDATE_STATISTICS 选项行为,请不使用
NORECOMPUTE 选项再次运行 UPDATE STATISTICS,或运行 sp_autostats。
 

统计--自动更新统计

原文:http://www.cnblogs.com/TeyGao/p/3553978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!