论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Mssql>>正文

SQL Server 2005中的批编译、重新编译和计划缓存问题(2)

www.xker.com 作者: 来源:microsoft 加入日期:2006-3-8 8:59:11

【问题提问、论坛交流】(上接:SQL Server 2005中的批编译、重新编译和计划缓存问题(1))
两种特殊情况

与计划最优性相关的重新编译在下列两种特殊情况中的处理方式有所不同

特殊情况 1:在空表或索引视图上创建的统计

SQL Server 2005 处理下列情况的方式不同于 SQL Server 2000用户创建了一个空表 T然后又在 T 一个或多个列上创建了一个统计 S由于 T 为空,因此统计二进制大对象(直方图)为 NULL,但已经在 T 上创建了统计假设在查询编译期间已发现 S 是“令人关注的”根据重新编译阈值的“500 行”规则,只有至少包含 500 行,T 才会在 SQL Server 2000 上导致重新编译所以,如果 T 包含的行不足 500,用户可能使用欠优化的计划

SQL Server 2005 可检测到这种特殊情况,并以不同的方式进行处理在 SQL Server 2005 中,这种表或索引视图的重新编译阈值为 1换句话说,即使仅在 T 中插入一行,也可能导致重新编译发生这种重新编译时,S 将被更新,同时 S 的直方图不再为 NULL然而,这一重新编译附带了重新编译阈值 (500 + 0.20 * n)的一般规则

在 SQL Server 2005 中,即使发生下列情况,重新编译阈值始终为 1:(1) T 没有统计;或者 (2) T 没有在查询编译期间被认作是“令人关注的”统计

特殊情况 2:触发器重新编译

导致重新编译的与计划最优性相关的所有原因都适用于触发器另外,由于已插入已删除的表中的行数在不同的触发器执行间发生巨大变化,也会对触发器产生与计划最优性相关的重新编译

回想一下,影响一行或多行的触发器会被单独缓存已插入已删除的表中的行数通过触发器的查询计划进行保存这些数字反映了导致计划缓存的触发器执行的行数如果后续的触发器执行产生了拥有“截然不同的”行数的已插入已删除的表,那么将对该触发器进行重新编译(并缓存带有新行数的全新的查询计划)

在 SQL Server 2005 中,“截然不同”的定义如下:

| log10(n) – log10(m) | > 1         if m > n 
| log10(n) – log10(m) | > 2.1      otherwise

其中 n 是已缓存查询计划中的已插入已删除表的行数,而 m 是当前的触发器执行的对应表的行数如果同时存在“已插入”和“已删除”的表,将对两者分别执行上面提到的测试

举一个计算示例,从 10 到 100 的行数更改不会导致重新编译,而从 10 到 101 的更改则完全相反

在 SQL Server 2000 中,“截然不同”的定义如下:

| log10(n+5) – log10(m+5) | >= 1

其中 nm 的定义同上请注意,根据这个公式,在 SQL Server 2000 中将已插入已删除的表的基数从 5 改为 95,将导致重新编译,而从 5 到 94 的更改则不然

识别与统计相关的重新编译

可通过包含字符串“Statistics changed”的事件探查器跟踪(将在本文后面介绍)的“EventSubClass”列来识别与统计相关的重新编译

结束语

与本文档的主题没有直接相关的一个问题是:给定的多个统计以相同的顺序存在于一组相同的列中,那么在查询优化期间,查询优化器如何决定所要载入的统计呢?答案并不那么简单,但查询优化器采用如下原则:为最近的统计提供比较旧的统计更高的优先权;为使用 FULLSCAN 选项计算得出的统计提供比用样例计算得出的统计更高的优先权;等等

本新闻共11页,当前在第01页  
01  02  03  04  05  06  07  08  09  10  
11  

编辑:xker.com

上一篇:SQL Server 2005 中的Multiple Active Result Set (MARS)
下一篇:SQL Server 2005中的批编译、重新编译和计划缓存问题(1)
关闭窗口】【技术交流】【收藏此页
相关文章
·SQL Server 2005中的批编译、重新编译·修改二级缓存 并不能加速Windows XP系
推荐文章 最新文章 热门文章
·Jsp开发环境配置全过程
·Fireworks制作妇女节主题宣传动画(图
·主动FTP与被动FTP-权威解释
·FTP连接后为什么列表错误,无法列表
·拒绝提示窗口 让操作自动赶走网络烦恼
·视频格式转换工具使用集锦
·通过SQL Server 2005索引视图提高性能
·SQL Server 2005新特性
·SOHO族安全建议-保证上传服务器安全
·服务器安全配置精华技巧
·缔造神话 十大怪招助你200%提升迅雷速
·有备无患 WinXP下软件数据大迁移
·流量牵引技术在防DOS攻击中的应用
·解决w3wp.exe内存占用问题
·IIS网站防盗链下载的解决方案
·SQL Server 2005中的批编译、重新编译
·SQL Server 2005中的批编译、重新编译
·你的网站上显示Alexa世界排名的代码(
·网络僵尸接连作案 多家企业局域网受重
·Jsp开发环境配置全过程
·剪出精彩:明明白白“剪贴板”
·Fireworks制作妇女节主题宣传动画(图
·FLASH + XML 求职简历 制作教程
·硬盘主引导记录详解
·主动FTP与被动FTP-权威解释
·FTP连接后为什么列表错误,无法列表
·FTP错误列表
·SQL Server 2005 中的Multiple Activ
·使用SQL Server 2005中的CLR 集成(2)
·使用SQL Server 2005中的CLR 集成(1)
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·系统优化 专题
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·求职简历封皮
·最经典的黑客入门教材
·ACDSee v8.0注册码
·应届毕业生求职信
·怎样查找对方的IP地址
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: