快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
内存授权调度程序,但是要释放该查询并且很快调度。服务器需要并行或并发执行许多这种查询。

如果有很大的查询,您希望一次只运行几个查询,让它们占有所需的更多内存。sql server(WINDOWS平台上强大的数据库平台) 确定一个由 4 X(系统中的 CPU 个数)得到的数。如果可能,sql server(WINDOWS平台上强大的数据库平台) 会同时运行那个数量的查询,为它们分配高效运行所需要的最小内存。如果还剩有内存,则一部分查询会允许占用最大高效内存。

sql server(WINDOWS平台上强大的数据库平台) 试图既为查询分配尽可能多的内存,又让尽可能多的查询同时运行在系统中。

  能够使用最大高效内存对某些操作很重要,例如夜间运行的批处理过程。您可能会生成很大的报表,或重新建立索引。这些查询可能使用大量内存,这种机制可以动态调整对内存的需求。因此,如果如果在队列中等待处理的查询不多,则内存授权调度程序会经常分配给查询最大需要的内存。如果白天的机器负载很重,则就不能同时运行太多的查询。这些查询会得到有效运行所需最小的内存,让内存为更多的查询共享。

  一旦调度程序说现在可以为请求分配内存,则计划即被“打开”,开始实际运行。计划会一直运行直到完成。如果查询使用了默认结果集模型,则计划会一直运行到检索到所有结果为止,然后把结果返回给客户机。如果使用的是游标模型,则处理过程略有不同。每个客户机请求只提取一块数据,并不是所有数据。当每个结果块返回给客户机之后,sql server(WINDOWS平台上强大的数据库平台) 必须等待客户机的下一个请求。在等待时,整个计划就会睡眠。这意味着要释放一些锁,要释放一些资源,并保留一些断点信息。这些断点信息使得 sql server(WINDOWS平台上强大的数据库平台) 能够返回到睡眠之前的状态,使得执行可以继续。

过程缓存
  我们在前面已经多次提到 sql server(WINDOWS平台上强大的数据库平台) 的过程缓存。需要注意的是,sql server(WINDOWS平台上强大的数据库平台) 7.0 的过程缓存与以前的版本有很大不同。在早期的版本中,有两个有效配置值用于控制过程缓存的容量:一个是定义 sql server(WINDOWS平台上强大的数据库平台) 总可用内存的固定容量,另一个是供存储查询计划使用的内存百分比(扣除满足固定需要的内存)。在老版本中,特定 SQL 语句从不存入缓存,只有存储过程计划才存入其中。在 sql server(WINDOWS平台上强大的数据库平台) 7.0 中,内存的总容量是动态的,用于查

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