如何降低SQL Server 2005内存使用量与设置
- 格式:docx
- 大小:17.87 KB
- 文档页数:4
当SQL Server的内存占用过高时,可以采取以下几种方法进行处理:
优化查询和操作:检查是否有过多的查询或操作导致了大量的CPU和内存使用。
可以优化查询、增加索引、减少查询次数或者分批进行查询来解决此问题。
调整数据库配置:检查数据库的配置是否合理,例如内存分配是否过大或过小。
可以根据服务器的硬件配置和数据库的负载情况进行适当的调整。
关闭其他应用程序或进程:可能存在其他应用程序或进程与sqlserver.exe竞争系统资源,导致CPU和内存占用过高。
可以关闭其他不必要的应用程序或进程,或者将其调整到其他服务器上。
重启SQL Server服务:通过重启SQL Server服务释放内存,但是生产服务器环境一般不允许随便重启SQL Server服务。
设置服务器最高内存值:通过设置服务器最高内存值的方法来释放内存,具体操作是先把服务器最大内存设置成一个小值,但不能太小,太小容易使SQL Server挂掉,然后再把服务器最大内存值设置回合适的值,建议占服务器总内存的80%。
定时服务定时检查并自动强制释放内存。
以上方法仅供参考,建议咨询专业人士获取更准确的信息。
摘要:数据库技术是计算机系统的核心技术,数据库的稳定性与否直接影响计算机的运行效果,SQL SERVER数据库具有广泛的应用平台,作为高度可优化的软件产品———SQL SERVER数据库,其性能的调整与优化对提高计算机运行效果具有重要的现实意义。
关键词:数据库性能调整与优化SQL SERVER数据库作为计算机系统的核心,基于SQL SERVER数据库性性能的调整与优化主要目的就是通过将网络流通、磁盘I/O和CPU时间减到最低,减少每个查询时间,以此提高数据库服务的吞吐量。
SQL SERVER 数据库性能调整与优化是提高计算机系统稳定性的重要技术支撑。
1SQL SERVER数据库的特点①具有高性能设计和先进的管理系统。
高性能设计就是说其可以利用windows NT为计算机提供优越的服务,并且通过先进的管理系统实现计算机功能的全面,比如可以为计算机使用者提供支持本地以及远程的管理与配置,同时也具有图形化管理功能。
②具有强大的处理功能和兼容性。
SQL SERVER数据库性具有事务处理功能,它可以根据具体的计算机系统要求正确的保持数据的完整,实现相关数据的安全,同时SQL SERVER数据库性可以兼容不同的计算机系统,能够根据不同的计算机系统为使用者提供一个稳定的数据库平台。
2SQL SERVER数据库性能调整与优化的方法无论什么原因导致计算机数据管理系统出现问题都会影响数据库的运行效率,因此要想提高SQL Server数据库性能发挥最大效率,应该不断调整与优化SQL Server数据库系统,实现SQL Server数据库系统各个功能的最大发挥。
2.1SQL SERVER数据库设计优化要想提高SQL SERVER数据库性能的稳定性,就必须首先提高数据库的设计,保证数据库设计方案的性能做大优化。
2.1.1数据库的事务设计。
数据库事务系统是由不同的SQL语句模块所构成的,事务处理是由计算机系统的应用程序实现的,因此事务处理的起止点也应该由应用系统完成,基于此程序,数据库事务设计,要遵循运行效率的最大化原则,要保证数据库短事务,实现事务中的SQL语句能够科学的占有与释放系统资源,避免在系统运行中占用过多的资源而导致系统运行速度的下降。
sql限制内存设定方法在SQL中,可以使用以下几种方法来设置和限制内存。
1. 在SQL Server中,可以使用“max server memory”选项来设置服务器实例的最大内存。
这个选项用于指定SQL Server实例可以使用的最大系统内存量,以字节为单位。
可以通过以下步骤来设置最大服务器内存:- 打开SQL Server Management Studio。
- 连接到SQL Server实例。
-右键单击服务器实例,选择“属性”。
-在“内存”选项卡上,可以看到“最大服务器内存(MB)”选项。
-设置合适的值,并单击“确定”保存更改。
2. 在MySQL中,可以使用“innodb_buffer_pool_size”选项来设置InnoDB缓冲池的大小。
这个选项用于指定InnoDB存储引擎可以使用的最大系统内存量,以字节为单位。
可以通过以下步骤来设置InnoDB缓冲池大小:- 在该部分下添加或修改以下行:innodb_buffer_pool_size=xxx,其中“xxx”是你想要设置的缓冲池大小,以字节为单位。
-保存更改后,重启MySQL服务器。
3. 在Oracle数据库中,可以使用SGA(System Global Area)参数来限制内存使用。
SGA是一个内存区域,用于存储数据库缓存和其他共享内存结构。
可以使用以下命令来设置SGA参数:- 打开SQL*Plus或其他Oracle客户端。
-使用SYSDBA权限登录到数据库:CONNECT/ASSYSDBA。
-运行以下命令来设置SGA参数:ALTER SYSTEM SET sga_target=value SCOPE=spfile;ALTER SYSTEM SET sga_max_size=value SCOPE=spfile;- 其中,“value”是你想要设置的SGA大小,以字节为单位。
-保存更改后,重新启动数据库实例。
4. 在PostgreSQL中,可以使用“shared_buffers”选项来设置共享缓冲区的大小。
SQLServer压缩⽇志与减少SQLServer⽂件⼤⼩的⽅法⼀般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。
第6步如果⽇志达到上限,则以后的数据库处理会失败,在清理⽇志后才能恢复。
1.清空⽇志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务⽇志 BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库⽂件 (如果不压缩,数据库的⽂件不会减⼩企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩⽂件 选择⽇志⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 选择数据⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了,也可以⽤SQL语句来完成 收缩数据库 DBCC SHRINKDATABASE(客户资料) 收缩指定数据⽂件,1是⽂件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1)4.为了最⼤化的缩⼩⽇志⽂件(如果是sql 7.0,这步只能在查询分析器中进⾏) 分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 在我的电脑中删除LOG⽂件 附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将⽣成新的LOG,⼤⼩只有500多K 或⽤代码: 下⾯的⽰例分离 pubs,然后将 pubs 中的⼀个⽂件附加到当前服务器。
分离 EXEC sp_detach_db @dbname = 'pubs' 删除⽇志⽂件 再附加 EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 4.为了以后能⾃动收缩,做如下设置 企业管理器--服务器--右键数据库--属性--选项--选择"⾃动收缩" SQL语句设置⽅式: EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 5.如果想以后不让它⽇志增长得太⼤ 企业管理器--服务器--右键数据库--属性--事务⽇志 将⽂件增长限制为xM(x是你允许的最⼤数据SQL Server ⽂件⼤⼩) SQL语句的设置⽅式: alter database 数据库名 modify file(name=逻辑⽂件名,maxsize=20)这⾥⼩编为⼤家分享个我⾃⼰经常使⽤的⽅法:DUMP TRANSACTION [jb51] WITH NO_LOGBACKUP LOG [jb51] WITH NO_LOGDBCC SHRINKDATABASE([jb51])jb51就是数据库名称。
SQL Server使用2G以上内存设置方法摘要在32位的Windows 2003 Server中,进程内存被限制为2GB,而目前数据库服务器基本上都配置有4G内存甚至更多,因此如何有效利用多出的内存,是数据库服务器性能优化的重要部分。
本文简要介绍了PAE和AWE的原理以及配置方法,使得32位的环境下可以突破2G这一瓶颈,从而提升数据库服务器的效率。
1.AWE简介目前随着硬件成本的降低,一般的服务器具有4G以上的内存。
可能很多人认为,如果使用Winows 2003 Server系统,最高可以支持4G内存。
其实这么说并不准确,应该说32位机支持2^32=4G 的寻址空间,但实际上默认应用程序只能占用其中的2G内存,这一限制是32位操作系统架构引起的。
传统意义上的32bit操作系统使用32bit的内存地址,这样寻址范围就已经被限制为4GB——4G也就是2的32次方,然而通常操作系统的设计上为了安全性的考虑,应用程序和内核所处的内存地址空间是互相独立的,也就是说,应用程序和内核各自能访问2GB的内存空间。
虽然不同的操作系统实现具有不同的值,不过多数现在的操作系统在这一点上都很一致。
为了让程序突破2GB寻址的限制,近代Windows NT核心提供了一个变通的方案:4GB内存调整优化技术,通过这个技术,可以将用户模式的寻址空间扩大至3GB,这样核心寻址空间便被限制为1GB了,需要超大内存容量的应用程序可以从这个特性中获得性能改善,如SQL Server数据库这种类型。
要使用这个4GB内存优化技术,用户需要在Windows Server操作系统的启动参数中加入/3GB 开关。
然而让用户模式程序能多寻址1GB毕竟还算是治标不治本,于是Microsoft 还在自己的操作系统中通过PAE 提高IA32 处理器处理大于 4 GB 的物理内存的能力。
下列操作系统可以通过PAE 来利用大于 4 GB 的物理内存: Microsoft Windows 2000 Advanced Server●Microsoft Windows 2000 Datacenter Server●Microsoft Windows Server 2003 Enterprise Edition●Microsoft Windows Server 2003 Datacenter EditionPAE,即物理地址扩展(Physical Address Extension),可使得x86 的计算机能够支持 4 GB 以上物理内存。
sql server analysis service 内存不足的解决方法【最新版3篇】目录(篇1)1.SQL Server Analysis Service 内存不足的问题2.解决内存不足的方法3.总结正文(篇1)一、SQL Server Analysis Service 内存不足的问题在使用 SQL Server Analysis Service 时,可能会遇到内存不足的问题,从而导致服务无法正常运行。
这种情况下,我们需要寻找合适的解决方案来解决内存不足的问题。
二、解决内存不足的方法1.调整服务启动参数在启动 SQL Server Analysis Service 时,可以设置一些参数来调整内存的使用。
例如,可以设置 MAXDOP(最大并行度)参数来限制同时运行的查询数量,从而减少内存的使用。
2.增加内存缓存在内存不足的情况下,可以尝试增加内存缓存来提高 SQL Server Analysis Service 的运行效率。
这可以通过修改注册表中的相应键值来实现。
例如,可以修改"MemoryPoolSize"键值来增加内存缓存大小。
3.优化查询检查您的查询语句,确保它们是高效的。
避免使用子查询、多表连接等可能导致内存使用增加的查询方式。
同时,可以考虑将大表分割成小表,以减少查询时的内存占用。
4.升级硬件如果内存不足的问题仍然存在,可以考虑升级硬件,增加服务器的内存容量。
这可以有效地解决内存不足的问题,提高 SQL Server Analysis Service 的运行效率。
5.联系技术支持如果以上方法都无法解决内存不足的问题,建议联系 SQL Server 的技术支持,寻求专业帮助。
三、总结当遇到 SQL Server Analysis Service 内存不足的问题时,可以通过调整服务启动参数、增加内存缓存、优化查询、升级硬件等方式来解决。
目录(篇2)1.SQL Server Analysis Service 内存不足的问题2.解决内存不足的方法3.总结正文(篇2)一、SQL Server Analysis Service 内存不足的问题SQL Server Analysis Service 是 SQL Server 的一个重要组件,它可以帮助用户对数据进行分析和挖掘。
SQL限制内存设定方法在进行SQL数据库管理和优化的过程中,限制内存的设定是非常重要的一项任务。
合理地限制内存使用可以提高数据库的性能和稳定性,避免出现内存溢出等问题。
本文将介绍SQL限制内存的设定方法,包括以下几个方面:•内存限制的重要性•内存限制的原理•SQL内存限制的设置方法•内存限制的优化建议内存限制的重要性数据库在运行过程中需要使用内存来存储数据和执行查询操作。
如果不对内存进行限制,数据库可能会占用过多的内存资源,导致其他应用程序无法正常运行。
另外,如果数据库使用的内存超过了物理内存的限制,就会发生内存溢出,导致数据库崩溃或性能严重下降。
因此,合理地限制内存使用对于数据库的稳定性和性能是非常重要的。
内存限制的原理数据库管理系统通过缓存机制来提高查询性能。
缓存是指将经常使用的数据和查询结果存储在内存中,以便下次查询时可以直接从内存中获取,而不需要再次访问磁盘。
这样可以大大提高查询的速度。
然而,如果数据库管理系统使用的内存过多,就会导致操作系统的缓存被挤压,从而影响其他应用程序的性能。
因此,限制内存使用是非常必要的。
SQL内存限制的设置方法SQL数据库管理系统通常提供了一些参数来进行内存限制的设置。
下面是一些常用的参数及其设置方法:1. 最大内存限制最大内存限制参数用于设置数据库管理系统可以使用的最大内存量。
这个参数的单位可以是字节、千字节、兆字节或者千兆字节。
具体的设置方法取决于不同的数据库管理系统。
例如,在MySQL中,可以通过修改f配置文件来设置最大内存限制。
找到[mysqld]部分,添加以下配置:innodb_buffer_pool_size=512M这样就将最大内存限制设置为512MB。
2. 查询缓存大小查询缓存是一种将查询结果存储在内存中的机制。
通过使用查询缓存,可以避免重复执行相同的查询,从而提高查询性能。
查询缓存的大小可以通过修改数据库管理系统的配置文件来设置。
具体的设置方法也取决于不同的数据库管理系统。
sqlserver清理缓存有效的方法在SQL Server 中,缓存是为了提高性能而设计的一个重要部分,它存储了查询计划、缓冲的数据页等。
但在某些情况下,可能需要清理缓存,例如:在进行了大量的数据修改后,或者想要测试查询的真实性能时。
以下是一些清理SQL Server 缓存的有效方法:1.清理整个缓冲池:使用以下命令可以清理整个缓冲池,但这通常不推荐在生产环境中使用,因为它会严重影响性能:2.sql复制代码DBCC DROPCLEANBUFFERS;注意:DBCC DROPCLEANBUFFERS是一个未记录且不受支持的命令,它可能导致系统不稳定。
在SQL Server 2016(13.x) 及更高版本中,此命令需要ALTER SERVER STATE或sysadmin固定服务器角色的权限。
出于性能和安全原因,不建议在生产环境中使用此命令。
2. 清理查询计划缓存:如果你只是想清理查询计划缓存,可以使用以下命令:sql复制代码DBCC FREEPROCCACHE;但请注意,这同样会影响性能,并且可能需要重新编译查询计划。
在生产环境中,更推荐使用以下命令来针对特定的查询计划进行清理:sql复制代码DBCC FREESESSIONCACHE (session_id);或者sql复制代码DBCC FREEPLANCACHE (plan_handle);1.清理缓冲池中的特定数据页:你可以使用以下命令来清理缓冲池中的特定数据页:2.sql复制代码DBCC DROPBUFFER (buffer_pool_id, buffer_id);但是,与上述命令一样,这也是一个未记录且不受支持的命令,不建议在生产环境中使用。
4. 重新启动SQL Server:虽然这不是一个“清理”命令,但重新启动SQL Server 确实可以清除所有的缓存。
这通常是在进行了大量的配置更改或安装了补丁后才会采取的方法。
5. 使用动态管理视图和函数进行清理:SQL Server 提供了许多动态管理视图和函数,可以帮助你识别并清理不再需要的缓存条目。
如有你有帮助,请购买下载,谢谢!SQL SERVER 高内存提高性能配置方案客户案例:操作系统:32位windows 2003/2008 server数据库:SQL SERVER 2003/2005/2008客户服务器内存:4G以上(一般建议8-20G内存)1.启用操作系统4G以上内存支持以来很多人都认为32位的操作系统只能识别不超过4G内存,其实理解是错误的,4G 只是指操作系统内存通用的寻址限制,对于32操作系统而言可以识别64G内存,只是对于超过4G的部分操作系统只是作为内存分页使用,不作通用寻址用法不同。
注:识别超出部分内存的方法,修改boot.ini文件,在引导参数内加上/PAE执行菜单运行notpad c:\boot.int如果同时有/3gb参数要去掉2.SQL SERVER启用AWE支持注:用最大内存后至少要给操作系统留4G内存,也就是说最大内存+4G应该小于总的内存数。
3.将SQL SERVER启动账户的用户页内存页锁定,相当于SQL SERVER独占内存查看SQL SERVER的启动账户,如果为SYSTEM刚不用更改启动账户,如果为administrator 或其它操作系统在用的账户则建议更改成其它专门账户来启动。
锁定内存页方法分配内存中锁定页用户权限,请执行以下步骤:1.单击启动单击运行,类型gpedit.msc然后单击确定.请注意"组策略出现对话框。
2.展开计算机配置然后展开Windows 设置.3.展开安全设置然后展开本地策略.4.单击用户权限分配然后双击中锁定页内存.5.在中本地安全策略设置对话框中,单击添加用户或组.7.关闭组策略是。
8.重新启动服务器。
如果客人是64位的操作系统由于能直接识别4G以上内存只需作步骤2和3。
此方案的可以提高性能30-40%,特别对于用户量大且邮件数据量超过200万的用户,建议使用。
如果客户每天都定时出现突然变慢的情况且持续10-20分钟又正常,查看操作系统日志可以发现SQL SERVER内存调度错误提示也可以用此方案来解决常见的错误日志是:sql 服务器进程内存的一大部分已调出。
SQL Server 2005 配置说明一、安装SQL Server 2005数据库目前,64位系统上安装的SQL Server 2005数据库,都是由Microsoft Visual Studio 2008安装的Express版本。
安装过程如下:1.先安装虚拟光驱daemo-x64.exe,安装过程中,会提示重新启动,重新启动完成后,就会安装虚拟光驱完成。
这时,会在屏幕右下角出现红色闪电图标。
左键点击图标,选择安装VS 2008的虚拟镜像文件zmvspro8.iso。
如图:使用虚拟光驱选择安装VS2008的虚拟光驱镜像文件2.安装VS2008,在选择好VS2008镜像文件后。
打开我的电脑,选择”DVD 驱动器(G:)”盘(可能根据不同的电脑,虚拟光驱的名字不一样),进入后,选择Autorun.exe执行安装VS2008。
根据安装提示一步一步安装完成,这样数据库就可以安装完成了。
注意,在选择安装时,选择完全安装(FULL),以防环境不一样,导致数据库运行出现问题。
如图红色区域:选择完全安装即FULL安装3.安装数据库管理工具SQL Server 2005 Management studio。
由于是从VS2008中安装的数据库,所以安装完成的数据库中是没有数据库管理工具,我们要自己安装个数据库管理工具。
安装管理工具的软件从相关人员索要。
执行“SQLServer2005_SSMSEE_x64.msi”,根据安装提示一步步就可以安装成功,安装成功后,可以查看管理数据库。
如图所示:成功安装SQL Server 2005和数据库管理工具,红色为管理工具4.查看数据库。
在使用数据库前,先要确认数据库服务正常启动。
点击《开始》->《程序》->《Microsoft SQL Server 2005》->《Configuration Tools》->《SQL Server Configuration Manager》后,会出现数据库配置管理对话框,点击左边树状图中“SQL Server 2005 Services”,在右边查看“SQL Server(SQLEXPRESS)”的图标,是否有个绿色的小箭头,如果有则说明数据库服务正常运行。
如何降低SQL Server 2005内存使用量与设置我的数据库服务器内存为8G,现在资源管理器显示内存用到5G,可以肯定是sql server数据库吃内存原因。
MSSQL占用了太多的内存,而且还不断的增长;或者说已经设置了使用内存,可是它没有用到那么多,这是怎么一回事儿呢?MSSQL是怎样使用内存的:最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉。
所以一般我们在看statistics io的时候,看到的physics read都是0。
其次就是查询的开销,一般地说,hash join是会带来比较大的内存开销的,而merge join 和nested loop的开销比较小,还有排序和中间表、游标也是会有比较大的开销的。
所以用于关联和排序的列上一般需要有索引。
再其次就是对执行计划、系统数据的存储,这些都是比较小的。
我们先来看数据缓存对性能的影响,如果系统中没有其它应用程序来争夺内存,数据缓存一般是越多越好,甚至有些时候我们会强行把一些数据pin在高速缓存中。
但是如果有其它应用程序,虽然在需要的时候MSSQL会释放内存,但是线程切换、IO等待这些工作也是需要时间的,所以就会造成性能的降低。
方法:可以考虑增加内存,优化数据库和代码,设置MSSQL的最大内存使用等等。
max server memory 和min server memory,如何设置(2种)1.通过SSMS界面中的服务器属性可以设置2. --通过sp_configure设置EXEC sp_configureN'min server memory (MB)',N'替换最小值'GORECONFIGUREGOEXEC sp_configureN'max server memory (MB)',N'替换最大值'GORECONFIGUREGO如果没有其它应用程序,那么就不要限制MSSQL对内存的使用。
然后来看查询的开销,这个开销显然是越低越好,因为我们不能从中得到好处,相反,使用了越多的内存多半意味着查询速度的降低。
所以我们一般要避免中间表和游标的使用,在经常作关联和排序的列上建立索引。
除了限制SQL使用内存之外,还可以优化数据库设计,比如没有必要用char(100)的地方,就用varchar,没有必要用int的地方就用smallint, tinyint,没有必要用双字节nvarchar的地方,就用varchar,这些都能有效减少读入内存的数据。
但如果有很多历史数据的话,很多人都不会去做的。
或者就是优化SQL代码。
合理设置内存让数据库与其他程序共存在SQL Server数据库中,有min server memory与max server memory两个内存选项。
在达到min规定的内存数量之前,数据库引擎缓冲池是不会释放它获取的任何内存。
min内存数量为50M。
查询作业执行完毕后,只要没有达到50M这个值。
则数据库系统不会把没有的20M内存还给操作系统,而是一直占用着,以方面后续的作业。
如果用户需要调用数据库系统中的函数或者过程,此时内存的需要量可能会超过规定的最小内存量,如达到80M。
数据库引擎缓冲池从不将内存分配降低到最小内存所指定的水平下。
也就是说,此时数据库最多会释放30M的内存,为自己留下50M的内存空间,即使当前其可能只需要用到40M内存空间即可。
当然在抓取内存空间的时候,其也不会为自己分配高于MAX内存所规定的内存空间。
为此如果能够把数据库的最低内存设置的比较低的话,则数据库系统在用完内存话就可以马上把内存释放出来,而不会为自己保留比较大的暂时不同的内存空间。
同理,在保障业务需求的情况下把最大内存设置的比较小,则可以为其他应用程序留下比较多的内存空间。
如果一台服务器上只运行了一个数据库应用程序,或者说数据库的应用比较简单、数据库内存使用量基本上不会超过最小内存数量的花,则可以采用默认多参数配置。
但是如果在同一台服务器上部署了比较多的应用程序或者数据库设计比较复杂,此时就需要对数据库的最小内存与最大内存进行配置,以实现多个应用程序能够实现和平共处。
数据库就需要采用一定的保护措施,需要设置最小内存与最大内存,来保障自己数据库正常运行所需要的内存空间。
一般来说,最好把最小内存设置的小一点,而把最大内存的花设置的大一点。
如此的话,可以让数据库引擎在管理内存的时候有比较大的灵活性。
然后再进行后续监测的数据来进行相应的调整,慢慢的把内存配置调整到最优。
要分析数据库系统内存的使用大户,跟其他应用程序的内存使用高峰分流。
数据库中函数、过程、复杂的视图、备份等作业都会用到比较可观的内存。
如企业如果在SQL SERVER数据库上面部署了ERP系统,而系统中有一个“库存采购”作业,这个需要用到比较复杂的业务逻辑,需要考虑到库存、安全库存、包装数量等等比较复杂的计算。
为此最好能够把这个作业放到服务器比较空的时候运行,以跟其他应用程序错开运行。
备份作业需要用到比较多的内存,为此最好能够把各种应用程序的备份作业错开来运行。
如此的话可以减少应用程序之间内存的占用。
如果把最小内存与最大内存的值设置为相同,那么会产生什么情况呢?如果把它们设置为相同的值,则一旦分配给数据库引擎的内存达到这个值的话,则数据库引擎将停止为缓冲池动态释放和获取内存。
也就是说,此时数据库内存的分配就是固定的,不会根据数据库引擎的负荷来动态的获取或者释放。
显然对于生成用的服务器来说,这并不是一个很好的配置。
但是在一些特殊的应用下,却可以起到比较不错的效果。
如需要测试数据库某个作业与内存之间的关系,那么就有可能需要把它们的值配置为相同。
另外如果服务器中只运行了数据库应用程序,那就有可能需要把这两个参数设置的比较高,以减少数据库内存释放与获取时所发生的额外开销等等。
另外数据库运行过程中的某些作业是不受这个最大内存的限制的。
如数据库中的进程可能会得到超过最大内存选项所指定的内存;数据库的一些外部组建也可以得到缓冲池以外的内存。
不过在大部分情况下,数据库运行还是受到这个缓冲池内存的限制的。
所以说在内存参数设置的时候,最好能够留有一定的余地。
=====================================================Windows2003 企业版+ Sql Server2005手工调整数据库服务器内存总以为Windows2003 能够合理的使用多余的内存,能够智能化处理内存,事实非然。
我有一台数据库服务器,32位,操作系统是Windows2003企业版,4G内存,320G存储空间,使用SQLSERVER2005 数据库管理系统,里边有若干个数据库,平时主要处理大量的业务外,还设置了一些同步,由于及时优化,CPU 一直保持在5%以下,各项主要指标观察下来一直正常,如数据库的缓冲命中率保持在95%以上等,所以平时就以默认安装的模式运行着,当然是原因一大堆,想想解释得也合理。
于是也及时进行了调整,效果还不错。
这里把调整的步骤讲给大家,希望有同样问题的朋友参考参考:1.打开操作系统启动时PAE 配置项;步骤:找到系统安装的引导位置的目录下找到boot.ini文件,默认是隐藏只读的,找到Windows2003 启动配置,在后面加上空格/PAE ,保存;重启示例所示:multi(0)disk(0)rdisk(0)partition(2)\%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE2.打开组策略,添加数据库运行所依赖的帐号有权进行锁定内存;大部分情况下,数据库运行的帐号都是系统级的帐号,如administrator 或者是administrators组的帐号,当然也有处于安全考虑的给了一个运行权限很小的帐号,只能运行数据库;所以必须授权该帐号具有锁定内存的权限;步骤:开始->运行->gpedit.msc->组策略->计算机设置->windows配置->安全设置->本地策略->用户权限分配->锁定内存页->本地安全策略设置->添加->选择运行的帐号或者组;3.重启服务器,远程维护的要查看boot.ini是否正确,切起切起,否则后果可想而知;4.配置数据库,重启后操作系统已支持大内存了,但数据库还是需要配置的;默认都未配置;执行以下命令即可步骤:打开查询分析器,进行以下操作,这里以3G内存给数据库使用为例进行操作,这几条命令分别含义是:打开高级选项,打开锁定内存,设置最大内存,最好是一起完成;sp_configure 'show advanced options', 1RECONFIGUREGOsp_configure 'awe enabled', 1RECONFIGUREGOsp_configure 'max server memory', 3072RECONFIGUREGO5.重启数据库,当配置项手工配置好后,需要重启数据库,这时你就发现SQLSERVER2005数据库占用多大的内存了,再看看数据库的属性也改变了,AWE上打了勾,最大内存改为3G了,以前是很大的,忽悠我^-^注意点:1.当操作系统PAE未打开时,配置数据库是没有用的,数据库会提示出错,告诉你内存锁定系统当前不支持;2.Boot.ini 文件是隐藏的,只读的,先修改属性后再操作;3.数据库重启前最好先备份,防患于未然;4.不知是操作系统问题,还是盗版的问题,我的SQLSERVER2005在进程任务管理器只有180M,经过和朋友确认,才知是显示错误,其实也不知是错误还是就是这样的,我想有一种可能,那就是系统把3G划给数据库使用后,自己只有1G,他只知道自己分配的那一块给数据库系统180M吧;5.数据库的内存设置有一个合理限度,根据服务器业务多少确定,但不能超过物理内存,我觉得至少得留500M给系统吧,另外如果系统中还有其他的服务在使用也要考虑进去,否则系统内存不足,引起磁盘页面交换频繁,反而使性能有所下降。