用户名: 密码: 注册 找回密码
搜索   
收藏本站 设为主页
首页
新闻 供求 报价 技术 下载 商家 商城 博客
论坛
硬件学院 软件学院 解决方案
技术查找 
  按标题 按全文
相关技术
· 如何得到AIX系统安装时间...
· AIX如何限制用户SSH远程...
· 主流虚拟主机布阵方式浅...
· KVM主机切换系统轻松管理...
· 用访问控制列表构筑“铜...
· VisualStudio.NET开发常...
最近头条
· IBM花费3年打造“网络故...
· 《中关村日报》IT渠道商...
· AMD公司一分为二 获60亿...
· IBM携Bluehouse参战云计...
· IBM为Power 570 Unix服务...
· 美国雷曼兄弟公司破产将...
相关供求
· DELL服务器配件大全:CPU...
· 2900,R900,MD1000 ...
· TYAN 3970服务器主板
· AMD 2212 服务器CPU
· 创见2G FBD 667/800服务...
· SUN服务器F280R,420R,22...
Advertisement
 首页 > 技术频道 > 软件学院 > 浏览技术 关键字: sql server  数据库  服务器 
Sql server服务器动态和静态内存分配
2006-6-27 17:13:27   equalnull   来源:中华服务器网    点击:942次   加入收藏夹

SQL服务器有两种基本管理方法:动态分配和静态分配,用以控制程序可使用的内存数量。动态分配允许管理员声明一块内存的大小;考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放。静态分配则是创建一块固定的内存空间,提供给SQL Server使用——不再进行分配。
  
  在默认情况下,SQL Server被设置成动态分配,分配给其正在运行的计算机内所有可用的物理内存。许多管理员注意到SQL Server内存随时间的流逝被逐渐消耗殆尽时,其原因很可能是故障或是内存漏洞,但这个程序正是被设计成这样的。SQL Server就是要在任何可能的情况下在电脑中运行,并因此为达到其最佳性能而使用所有可用的内存。如果SQL Server在独立的机器中运行,那么就让它分配和释放其需要的内存吧。
  
  在一个小型商业服务器机器中,SQL可能与其他程序,如IIS,同时运行,管理员或许尝试着进行设置,使SQL Server运行在一块固定大小的内存,目的是控制其不会占用用于共享的内存。但这并不一定能如愿以偿。一方面,将内存的最高限度设置得太低,并且没有分配给SQL服务器足够的可用内存来用作类似事务日志或查询执行的缓存,所有这些都很难办到。使SQL服务器得到执行操作所需内存的惟一方法就是换出其他的页面,这是个缓慢的过程。
  
  有许多方法可以计算出最好的内存分配。如果你有可预知的用户负载,依照用户所需的最大数目分配给他们。微软推荐至少用4 MB用作动态的最大空间,这已经成为一个可能的规则。如果你的用户负载变化范围很大——如以下情况,当你通过IIS 的前端连接到公共的因特网来支持你的数据库服务的时候——实时的统计数据将会比仅凭猜测所作的工作帮助更大。在高峰期,把SQL Server的高速缓存命中率和每秒缺页率等性能数字搜集起来。如果这些数据表明SQL Server正在做大量的交换,那么增加最大内存空间直到交换逐渐减少。每秒一次或更多次的交换是有坏处的。
  
  另一种选择是使“为SQL Server预留物理内存”的选项可用,这可以防止SQL Server把已经分配给它的内存换出,即使当其他应用程序能够使用它时。这可以叫做是一把双刃剑:它既可以相当大程度的提高性能,也可能带来更大的性能损害。在有许多RAM 可以共享的(1 GB 或更多)的系统中,这是值得一试的,但是当有其他关键的进程可能突然需要大量的内存时,这种办法是不应该使用的。(并且如果需要的话,SQL Server可能会被迫放弃一些它自己的内存)。如果SQL Server是在独立的机器上运行,用这种办法最佳化性能则是值得的。

(the end)

对不起,您需要登录后才能查看全部详细内容
上一条技术: Sql server删除数据库中的重复数据
下一条技术: Sql server数据移动六大方法介绍


关于我们 法律声明 广告服务 友情链接 联系我们
版权所有:中华服务器网©2001-2008
粤ICP备05008160号 由深圳市七乘二四信息技术有限公司提供技术支持。
 客 服