改善SQL Server数据库的内存管理方法

最近,为了能在数据库服务器中运行其他应用程序,在保持数据库操作系统版本不变的前提下对数据库服务器进行了软、硬件上的升级。在软件上,将操作系统从Windows 2000升级到Windows Server 2003;在硬件上,将服务器中的内存由原来的512MB增加到1GB(1024MB)。

在升级后的开始几个星期之内,服务器在使用中表现良好。但是不久后就发现,在服务器上同时运行的其他应用程序却出现了异常,不时地报出内存分配不足的警告。经过几次跟踪后发现,原来是SQL Server吞去了大部分内存所致。被SQL Server占用的内存由升级前的不到400MB一下子增加到现在的900MB,并且有不断增长的趋势。

通过查找原因才知道这是SQL Server 缓冲池的预期行为。默认情况下,在启动 SQL Server之后,SQL Server会根据操作系统报告的物理内存数来动态增大或缩小高速缓冲存储器的容量。只要可用物理内存大小保持在4MB到10MB之间,SQL Server 缓冲池就会继续增大(保留可用物理内存在4MB到10MB之间是为了避免操作系统因为缺少内存而频繁地换页)。如果物理可用内存变得较少的时候,则SQL Server会将一些内存释放给操作系统。

为了使运行在服务器上的应用程序都能达到比较满意的效果,同时也为了能给其他应用程序分配足够的内存,需要采取措施限制SQL Server 的内存使用量。我们可以通过设置SQL Server 数据库引擎使用的内存的上下限来达到此目的。其具体步骤是:

1.打开企业管理器,展开服务器组。

2.单击该服务器,点击鼠标右键,单击属性菜单。

3.在弹出的对话框中单击内存选项卡。

内存设置方法有两种:

1.设置min server memory和max server memory 在一个范围段内。

比如,我们将它设置成最小0MB,最大255MB。这种方法在为一台服务器中运行多个应用程序分配内存时非常有用。

2.设置 min server memory 和 max server memory 为同一数值。

比如,可以将它最大和最小值都设置成255MB。这样的设置方法与窗口中的另一个选项“使用固定的内存大小” 相一致。

虽然内存最小值和最大值设置是高级选项,但在设置完毕之后,最好还是先将SQL Server服务停止后再重新运行,以便SQL Server能更好地对内存进行合理安排。

时间: 2024-08-03 22:12:12

改善SQL Server数据库的内存管理方法的相关文章

Odbc连SQL Server数据库的几种方法

odbc|server|数据|数据库 Odbc连SQL Server数据库的几种方法   这篇文章是针对在CSDN论坛 中的一些想知道这方面技术的网友而写的.因为最近我本人在论坛上看到很多网友提到这个问题,所以就写了这篇文章,以飨读者. SQL Server 是一种高效的关系数据库系统,它与Windows NT/2000及Windows 9x等操作系统紧密集成.也是今天市场上几种大型关系型数据库(SQL Server\Oracle ybase等)之一.对于今天复杂的B/S服务器系统来说,SQL

深入SQL SERVER 2000的内存管理机制(二)

server 深入SQL SERVER 2000的内存管理机制(二)     http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnsqldev/html/sqldev_01262004.asp   可访问大地址的应用 (Large-Address-Aware Executables) 在Windows增加支持/3GB参数以前,一个应用程序是无法访问一个带有高位设置的指针.一个32位的指针只有前31位地址空间可以被用户

SQL Server 数据库自动执行管理任务_MsSql

当满足这些指定的条件,则数据库会自动运行管理员指定的操作.使用自动管理来处理日常事务,则让管理员可以抽出时间去关注其他的事情,如数据库优化等等更加具有价值的作业. 计划就是自动化管理组件的一个成员.计划指定了作业运行的时间.多个作业可以根据一个计划运行;多个计划也可以应用到一个作业.但是这个时间跟我们普通上的几点几分又有差异.这个时间不仅指特定的日期或者时间,而且还可以表示特定的时间.如当SQL Server代理启动的时候或者服务器的CPU使用率处于定义的空闲状态水平时.也就是说,这里指的时间计

ASP创建SQL Server数据库的两种方法

server|创建|数据|数据库 <% ************ 使用ADODB.Connect对象创建 ************************Dim oConnDim sDatabaseNamesDatabaseName = "CodeCreateDB"Set oConn = Server.CreateObject("ADODB.Connection")oConn.Open "Provider=SQLOLEDB;Data Source=(

SQL Server数据库备份二种方法

  只拷贝备份 我认为一个很有用的特性就是只拷贝备份,它让你可以在备份过程中,在不打乱其他备份文件的顺序的情况下进行拷 贝.使用SQL Server 2000的时候,如果你在一天的中间运行了一个特殊的完全备份,为了恢复,你必须使用完全备份 和在完全备份之后发生的所有事务日志.这个新的特性允许你创建一个只对备份的拷贝,然后使用正常的完全拷贝来 达到恢复的目的. 对于不同的备份,在处理方式上没有任何的改变.对于事务日志备份,你也可以只对备份进行拷贝--同样是不需要 打乱其他备份文件的顺序.任何通过这

SQL Server 数据库清除日志的方法_mssql2005

方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_LOG 2.再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了. 方法二: 设置检查点,自动截断日志 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模

SQL Server新一代的内存管理技术

在2012年度的SQL Server(PASS)峰会(SQL Server专业人士的技术会议)上,微软发布了代码名为"Hekaton"的新功能,一个完全针对事务处理(TP)的内存数据管理系统.Hekaton 的技术主要适合于那些对事务处理要求极其苛刻的应用,比如金融服务公司.http://www.aliyun.com/zixun/aggregation/28921.html">在线游戏等等.对于 Hekaton 最令人印象深刻的是它不是一个单独的数据管理产品或者一个需要

配置SQL Server数据库恢复模式(2种方法)_MsSql

下面主要介绍配置SQL Server数据库恢复模式的两种方法. 用T-SQL设置恢复模式你可以使用"ALTER DATABASE"命令加"SET RECOVERY"语句来修改数据库的恢复模式.例如,下面的查询语句把"AdventureWorks"数据库的恢复模式设置为完全恢复模式. ALTER DATABASE AdventureWorks SET RECOVERY FULL ; 你可以查询"sys.databases"的目录

配置SQL Server数据库恢复模式(2种方法)

下面主要介绍配置SQL Server数据库恢复模式的两种方法. 用T-SQL设置恢复模式 你可以使用"ALTER DATABASE"命令加"SET RECOVERY"语句来修改数据库的恢复模式.例如,下面的查询语句把"AdventureWorks"数据库的恢复模式设置为完全恢复模式. ALTER DATABASE AdventureWorks SET RECOVERY FULL ; 你可以查询"sys.databases"的目