设为首页 收藏本站
查看: 1551|回复: 0

[经验分享] Sql Server 2005 统计信息用途

[复制链接]

尚未签到

发表于 2015-6-30 05:09:40 | 显示全部楼层 |阅读模式
   1, 什么是统计信息
  以下是官方的对统计信息的描述:
  按照默认设置,如果表中的某列没有索引,则SQL Server会自动为该列创建统计。然后,查询优化器评估该列中数据分布范围的统计信息,以选择一个更为有效的查询处理方案。分辨自动创建的统计很简单,在SQL Server 7.0和SQL Server 2000中,自动创建的统计的前缀为_WA_Sys。
  
    个人感想:   
      以前对_WA_Sys开头的统计信息一直不知道有什么用,在学习了oracle时的CBO和三个算法(嵌套循环,合并连接和hash连接)才发现这个_WA_Sys开头的统计信息和索引的统计信息对我们用户没用,对数据库是很重要的。
  
   2, 统计信息内容:

DSC0000.gif dbcc show_statistics('[[zping.com]]]',idx_operator)  运行上面命令以后,出来下列信息:   

Name         Updated                        Rows Rows      Sampled    Steps     Density           Average key length    String Index
idx_operator 07 24 2008  8:15PM   721370          721370     200      0.002035875  63.99907               YES  
  这里的信息说明:
  name:统计信息的名称。 Updated :上一次更新统计信息的日期和时间   
  Rows :表中的行数。 Rows Sampled :统计信息的抽样行数。
  Steps:分发步骤数(在sql server最多200步)  Average key length :所有索引列的平均长度
  这些信息是对统计信息一个汇总
  
  还有下列信息:   

All density     Average Length   Columns
0.004219409   31.99907        operator  
  All density :索引列前缀集的选择性(频繁) Average Length :索引列前缀集的平均长度。 Columns:索引列前缀的名称
  
  还有包括数据统计的直方图信息:
  
   3,  统计信息的作用:
  1,  index建立后,优化器是否使用该index,优化器需要借助一些统计信息来做判断
      2,根据统计信息,预估采用嵌套循环连接,合并连接, 哈希连接等哪一个连接
      3,根据统计信息判断表的估计最佳的成本(最佳的执行顺序),
  
   4, 统计信息自动建立:
  1,建立索引后,就会出现一个同名的统计信息
  2,一个列没有统计信息,这时用他来关联表和查询数据,这时,系统会在评估最佳查询计划前,生成一个该列的"_WA_Sys"的统计信息。
     如下图:这里就包含(索引统计信息和列的统计信息)
  
      DSC0001.jpg
  
       统计信息的更新和维护,由于数据的经常改变,统计信息是由sql server 2005自动维护的。可以手工更新统计信息:

  update statistics [[zping.com]]](_WA_Sys_creater_4C02DB92)  with fullscan
  
  更新表的统计信息,采集表中该列的全部数据。一般建议采用全部数据采集。保证统计信息的正确性
  
   5,  统计信息的设置
  系统是如何来设置更新和创建统计信息的?
DSC0002.jpg
  
  原来在创建数据库时,系统自动设置了统计信息的属性。这两个属性一般不要手工改动。     
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-81738-1-1.html 上篇帖子: SQL Server 2005的服务器角色(public)的问题 下篇帖子: SQL Server 2005 智能感知插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表