当前位置: 首页 > news >正文

sql服务器虚拟内存不足,解决SQL Server虚拟内存不足情况

解决SQLServer虚拟内存不足情况

症状

在具有2GB或更多RAM的计算机上,除了256MB(SQLServer7.0)或384MB(SQLServer2000)虚拟地址空间之外,SQLServer在启动过程中保留剩下的所有虚拟地址空间以供缓冲池使用。另外,为了存储数据和过程缓存,SQLServer使用缓冲池内存为来自SQLServer进程的大多数小于8KB的其他内存请求提供服务。剩下的未保留内存准备用于不能从缓冲池得到服务的其他分配。这些分配包括、但不限于以下各项:•SQLServer创建的所有线程的堆栈和关联的线程环境块。在SQLServer创建了所有255个工作线程之后,这大约为140MB。

•由在SQLServer地址空间(根据具体系统而有所不同)中运行的其他DLL或进程进行的分配,如:•任何链接的服务器中的OLEDB提供程序。

•通过使用sp_OA系统存储过程或扩展存储过程加载的COM对象。

•加载到地址空间中的任何映像(.exe或.dll),这些映像通常使用20到25MB,但是如果您使用链接的服务器、sp_OA或扩展存储过程,则这些映像可能使用更多的空间。

•进程堆和SQLServer可能创建的任何其他堆。在启动过程中,此空间通常为10MB,但是如果您使用链接的服务器、sp_OA或扩展存储过程,则此空间可能更多。

•来自SQLServer进程的大于8KB的分配,例如较大查询计划、网络数据包大小配置选项接近于8KB时发送和接收缓冲区等情况所需要的分配。要查看此数字,请查找在DBCCMEMORYSTATUS中报告的OSReserved值,该值是作为8KB页的数目报告的。通常,该值为5MB。

•跟踪缓冲池中每个缓冲区状态信息的数组。该值通常约为20MB,除非SQLServer运行时启用了地址窗口化扩展插件(AWE),在这种情况下,该值将会显著提高。

在拥有大量数据库的系统上,日志格式化所需的64KB分配可能会占用所有剩余的虚拟内存。这之后的分配将失败,导致本文的“症状”一节中列出的一个或多个错误。

通过使用-g启动参数,您可以指示SQLServer保留附加的虚拟内存可用,以便这些与日志相关的分配和其他正常分配加在一起也不会用完虚拟地址空间。

下表根据数据库的数目和服务器版本列出-g值的一些建议初始值:DatabasesSQLServer7.0SQLServer2000

250-g134N/A

500-g185N/A

750-g237N/A

1000-g288-g288

1250-g340-g340

1500-g392-g392

此表是使用列出的典型值进行计算的,并且此计算是基于没有使用链接的服务器活动、sp_OA或扩展存储过程这一假设的。它还假设您没有使用AWE和SQL事件探查器。出现以上任意一种情况都需要您增加-g的值。

如果服务器上数据库的数目超过此数目,Microsoft建议您在运行该服务器之前进行慎重的考虑,因为系统上具有如此数目的数据库所需的系统开销将占用缓冲池中的大量虚拟内存,从而可能导致系统整体性能下降。

相关文章:

  • 失落城堡手游获取服务器信息99,失落城堡手游更新情况介绍 游戏更新大全
  • 网站服务器年费属于什么费用,云服务器属于什么费用
  • rs232数据无线传输至服务器,智嵌UDP与RS232RS485双向数据透明传输例程(开发板做服务器)使用说明.pdf...
  • saas系统用的什么语音_为什么越来越多的人选择SaaS模式的crm客户管理系统?
  • 达梦两个表模糊查询_一文彻底搞定哈希表
  • java读取src路径下的txt文件_Python File I/O之读取路径下所有目录和文件
  • 电脑教程从入门到精通_CAD从入门到精通,让你变身CAD大神【全套视频教程】
  • word文档通配符换行_Word文档每一行后面都有小箭头如何消除?
  • glsl shader 雪_冬季的第一场雪!唤起了往年回忆,雪天行车预警提前防范,准备起来!...
  • java线上图书馆最新_临夏市图书馆阅读推广公益行动——“扫码看书,百城共读”进社区活动...
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • C# 联合查询_直击数据库面试题:数据库查询语句
  • using namespace std_STD币最高价格-每日分享短线币种策略观点
  • 机器人码垛搬运编程程序_焊接机器人、码垛搬运机器人的差异和区别是什么?...
  • conteos7.2 安装php_广播将军免安装中文版下载
  • #Java异常处理
  • (三)从jvm层面了解线程的启动和停止
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • canvas 高仿 Apple Watch 表盘
  • HomeBrew常规使用教程
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • js对象的深浅拷贝
  • js正则,这点儿就够用了
  • maven工程打包jar以及java jar命令的classpath使用
  • Octave 入门
  • Redis字符串类型内部编码剖析
  • win10下安装mysql5.7
  • 对超线程几个不同角度的解释
  • 浮现式设计
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 给初学者:JavaScript 中数组操作注意点
  • 构造函数(constructor)与原型链(prototype)关系
  • 前端路由实现-history
  • 前端性能优化--懒加载和预加载
  • 深度解析利用ES6进行Promise封装总结
  • 实习面试笔记
  • 通过几道题目学习二叉搜索树
  • 项目实战-Api的解决方案
  • Android开发者必备:推荐一款助力开发的开源APP
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (3)(3.5) 遥测无线电区域条例
  • (33)STM32——485实验笔记
  • (补)B+树一些思想
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (数据结构)顺序表的定义
  • (一) springboot详细介绍
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转载)深入super,看Python如何解决钻石继承难题
  • .net core 6 redis操作类
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET6实现破解Modbus poll点表配置文件