快速业务通道

Microsoft SQL Server 查询处理器的内部机制与结构

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
OWS平台上强大的数据库平台) 可能会根据语句所满足的条件重新编译,所以状态并不是永远稳定的,但也不是处于不停的变化之中。如果优化器使用的信息变化太剧烈、太经常 — 并发处理器的数量和锁的数量不稳定 — 则必须不断重新进行编译,而一般来说编译是比较耗时的。例如,SQL 语句的运行时间为百分之一秒,而编译可能需要占用半秒。最理想的情况是,sql server(WINDOWS平台上强大的数据库平台) 能够只编译语句一次,而执行成千上万次,不必每次执行该语句时都重新编译它。

  编译阶段的最终产品是查询计划,放在过程缓存中。便宜的特定 SQL 计划并不放在缓存中,不过这只是个小问题。我们不希望缓存被不太可能重复执行的内容占满,一般来说,特定 SQL 语句的计划是最不可能反复使用的了。如果语句编译已经很便宜(小于百分之一秒),则没有必要再把计划放入缓存,用不太可能重新使用的计划占用缓存。

  把计划放入缓存之后,SQL Manager 按照执行要求逻辑进行检查,确定是否有更改的内容,是否需要重新编译。即使编译到执行之间时间间隔只有几毫秒,也可能有人会执行一条数据定义语句 (DDL),为关键的表加了索引。这种可能性不大,但是确实存在,因此 sql server(WINDOWS平台上强大的数据库平台) 必须考虑这一点。有几种情况 sql server(WINDOWS平台上强大的数据库平台) 必须重新编译存储规划。元数据的修改,例如增加或删除索引,是重新编译的最主要的原因。服务器必须确信所使用的计划反映了索引的当前状态。


重新编译的另一种原因是统计情况发生变化。sql server(WINDOWS平台上强大的数据库平台) 还维护不少数据使用频率的统计信息。如果数据使用频率分布情况变化很大,则可能需要另一个查询计划以便更有效地执行。sql server(WINDOWS平台上强大的数据库平台) 跟踪表数据插入和删除的统计数据,如果数据修改的数量超过根据表的容量变化的某一阈值,则需要根据新的分布数据重新编译计划。

  图 7 给出了编译和执行过程的流程。

(WINDOWS平台上强大的数据库平台) 查询处理器的内部机制与结构(图七)" width="477" height="374" />
·OWASP要素增强Web应用程序安全(2)
·“恶搞”盗用你无线网络的邻居
·如何入侵jsp(SUN企业级应用的首选)网站
·黑客知识:如何隐藏 PHP文件后门的技
·jsp(SUN企业级应用的首选)+javabean学习(二)
·Java入门视频教程-第61讲
·OWASP 10要素增强Web应用程序安全(1
·什

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号