Sql Server Statistics
来源:互联网 发布:跨境电商软件 编辑:程序博客网 时间:2024/05/21 05:57
当大量数据导入表中有时需要做Statistics 的更新。
操作层面:Sql Server 数据库
<PIC>
Create Statistics 的时机
查询优化器已经用下列方式建立统计数据:
- 建立索引时,查询优化器就会针对数据表或检视表的索引建立统计数据。这些统计数据是针对索引的索引键数据行所建立的。如果索引是筛选的索引,查询优化器就会在针对筛选索引所指定的相同数据列子集上建立筛选的统计数据。
- 开启 AUTO_CREATE_STATISTICS时,查询优化器会针对查询述词中的单一数据行建立统计数据。
对于大部分查询而言,这两种建立统计数据的方法可确保高质量的查询计划。不过,在少数情况下,您可以使用CREATE STATISTICS语句来建立其他统计数据,以便改善查询计划。这些额外的统计资料可以撷取查询优化器在建立索引或单一数据行的统计数据时无法解释的统计相互关联。您的应用程序可能会在数据表数据中具有其他统计相互关联,而且如果它们计算成统计数据对象,就可让查询优化器改善查询计划。例如,数据列子集的筛选统计数据或查询述词数据行的多重数据行统计数据可能会改善查询计划。
使用 CREATESTATISTICS语句来建立统计数据时,我们建议您将AUTO_CREATE_STATISTICS选项保持开启状态,让查询优化器能够继续例行地针对查询述词数据行建立单一数据行统计数据。
当下列任何情况适用时,请考虑使用 CREATESTATISTICS语句来建立统计数据:
- Database Engine Tuning Advisor建议您建立统计资料。
- 查询述词包含多个尚未存在相同索引中的相互关联数据行。
- 查询会从数据子集中选取。
- 查询具有遗失的统计资料。
查询述词包含多个相互关联的数据行
当查询述词包含多个具有跨数据行关联性与相依性的资料行时,多个数据行的统计数据可能会改善查询计划。多个数据行的统计数据报含跨数据行相互关联统计数据 (称为「密度」(Density)),而且这些统计数据不会在单一数据行统计数据中提供。当查询结果相依于多个数据行之间的数据关联性时,密度可以改善基数估计值。
如果数据行已经存在相同的索引中,就表示多重数据行统计数据对象已经存在,而且您不需要手动建立此对象。如果数据行尚未存在相同的索引中,您可以针对数据行建立索引或使用 CREATESTATISTICS语句,藉以建立多重数据行统计数据。相较于统计数据对象而言,这种统计数据需要更多系统资源来维护索引。如果应用程序不需要多重数据行索引,您就可以建立统计数据对象而不建立索引,藉以节省系统资源。
建立多重数据行统计数据时,统计数据对象定义中的数据行顺序会影响建立基数估计值之密度的有效性。统计数据对象会将索引键数据行之每个前置词的密度储存在统计数据对象定义中。
若要建立对于基数估计值有用的密度,查询述词中的数据行必须与统计数据对象定义的其中一个数据行前置词相符。例如,下列命令会针对LastName、MiddleName和FirstName数据行建立多重数据行统计数据对象。
多少情况只需要更新。
单个更新:
<PIC>
对勾勾上即可。
也可通过Sql语句批量更新表下的统计:
updatestatistics <TableName>withfullscan
- SQL SERVER STATISTICS
- SQL Server Statistics AUTO_UPDATE_STATISTICS
- Sql Server Statistics
- Sql Server Client Statistics 怎么用好?
- SQL Server统计信息(statistics)的总结
- 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
- 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
- Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
- SQL Server 2005: Stored Procedure call activity statistics & execution time
- SQL Server: 利用 SET STATISTICS IO 和 SET STATISTICS TIME 对T-SQL语句进行性能分析
- AWR中的SQL Statistics
- SQL Server 常用的 SHOWPLAN_ALL 和 STATISTICS IO 分析索引和查询性能
- Correct SQL Server TempDB Spills in Query Plans Caused by Outdated Statistics
- SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
- SQL统计信息(statistics)
- Transact-SQL命令----SET STATISTICS IO和SET STATISTICS TIME
- sql性能调试,set statistics io 和 set statistics time
- SQL Server2008优化之SET STATISTICS开关
- LIST_HEAD_INIT 和 INIT_LIST_HEAD
- linux 下ngnix启动,停止命令总结
- Centos之Lnmp的搭建
- 关于Other Link Flag的有关说明
- Html5在ios上input标签自动填充内容移动光标至尾的方法
- Sql Server Statistics
- 移动端开发小技巧
- Spring3+Hibernate4连接Oracle11g数据库参数配置
- 巧用QSignalMapper分类有序地处理大量信号
- Debug---Eclipse断点调试基础(二)
- 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
- 一些比较好的Android 开源框架
- Hibernate对于用户表增删该查的实现
- redis 集群安装脚本,redis-cluster