续:有关SQL SERVER分布统计的问题(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:50 点击:
对于表变量来说,并不会触发自动更新
 
全扫描
在有些表中,经常看到由于某些列发生变化,与这些列相关的统计也会自动更新,但是若发现创建的统计是基于采样的数据,那你可能需要手动运行
UPDATE STATISTICS WITH FULLSCAN来更新统计,如下命令:
   1: UPDATE STATISTICS Tab1 Stats_MyStatOnCol1 WITH FULLSCAN
 
说到这里,你可能会问:有必要关注数据库中统计所占用的空间吗?
答案取决于多种因素,通常不用过多关注统计所占用的空间,但是也不总是这样;如果你遇到一个含有非常长的列的表,或许你应该调查一下服务器是否因花费过多的时间和资源来更新这些统计的必要性。
在维护期间重建索引和更新统计,对于一个系统中数据量比较大的表来说,可能删除那些未使用的统计,这样有助于提高重建和统计更新的速度,不过并没有一种方法来检查统计对象是否使用,很难找出哪些统计对象未被使用。
 
测试
下面来通过一个示例来介绍,脚本创建一个示例表Tab1(26列),然后插入1万行:
   1: CREATE TABLE Tab1 (ID Int IDENTITY(1,1) PRIMARY KEY, 
   2:                    Col1 VarChar(200) DEFAULT NEWID(),
   3:                    Col2 VarChar(200) DEFAULT NEWID(),
   4:                    Col3 VarChar(200) DEFAULT NEWID(),
   5:                    Col4 VarChar(200) DEFAULT NEWID(),
   6:                    Col5 VarChar(200) DEFAULT NEWID(),
   7:                    Col6 VarChar(200) DEFAULT NEWID(),
   8:                    Col7 VarChar(200) DEFAULT NEWID(),
   9:                    Col8 VarChar(200) DEFAULT NEWID(),
  10:                    Col9 VarChar(200) DEFAULT NEWID(),
  11:                    Col10 VarChar(200) DEFAULT NEWID(),
  12:                    Col11 VarChar(200) DEFAULT NEWID(),
  13:                    Col12 VarChar(200) DEFAULT NEWID(),
  14:                    Col13 VarChar(200) DEFAULT NEWID(),
  15:                    Col14 VarChar(200) DEFAULT NEWID(),
  16:                    Col15 VarChar(200) DEFAULT NEWID(),
  17:                    Col16 VarChar(200) DEFAULT NEWID(),
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1