快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
因为每当它被重新使用时其成本已被重新设置,迟缓写入器不会看到它的成本降为 0。

  图 10 显示迟缓写入器处理缓存的流程。

(WINDOWS平台上强大的数据库平台) 查询处理器的内部机制与结构(图十)" width="338" height="198" />
  图 10. 迟缓写入器处理缓存的流程

处理客户机的 SQL
  下面再看看提交 SQL 语句之后的处理过程。首先,我们将研究客户机向 sql server(WINDOWS平台上强大的数据库平台) 发送 RPC 事件。因为 sql server(WINDOWS平台上强大的数据库平台) 收到了 RPC 事件,所以它会知道该事件是某种参数化的 SQL;它是准备/执行模型,或者是 EXECUTESQL。sql server(WINDOWS平台上强大的数据库平台) 需要构建一个缓存键,以标识这个具体的 sql server(WINDOWS平台上强大的数据库平台) 文本。如果 sql server(WINDOWS平台上强大的数据库平台) 处理的是实际的存储过程,则不需要建立它自己的键;直接使用该过程的名称即可。对于通过 RPC 调用发来的简单 SQL 文本,则通过杂凑该 SQL 文本来建立缓存键。此外,该键还要反映一定的状态信息,如某些 ANSI 设置。使所有 ANSI 设置为 ON 的连接和另一个使所有 ANSI 设置为 OFF 的连接,即使它们来自相同的查询,也不能使用相同的计划。处理过程是不同的。例如,如果一个连接把 concat_null_yields_null 设置为 ON,另一个把 concat_null_yields_null 设置为 OFF 的连接,即使它们执行的是完全相同的 SQL 文本,但所产生的结果则完全不同。这样,sql server(WINDOWS平台上强大的数据库平台) 可能需要在缓存中保存计划的多个版本,每个版本对应于一个不同的 ANSI 设置组合。启用的选项设置是键的一部分,而键字是使用这种缓存处理机制检查对象的核心,因此 sql server(WINDOWS平台上强大的数据库平台) 建立这种键并用来检查缓存。如果在缓存中没有发现该计划,则 sql server(WINDOWS平台上强大的数据库平台) 会按照前面介绍的方式编译该计划,并把该计划与键一起存入缓存中。

  sql server(WINDOWS平台上强大的数据库平台) 还需要确定该命令是否是准备操作,这意味着该计划应该只编译但不执行。如果是准备操作,则 sql server(WINDOWS平台上强大的数据库平台) 会给客户机返回一个句柄,供客户机在以后检索并执行该计划。如果不是一个准备操作,则 sql server(WINDOWS平台上强大的数据库平台) 提取并执行该计划,就像最初从缓存中找到该计划一样。

准备/执行

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号