网络编程
位置:首页>> 网络编程>> 数据库>> Sql Server 2000内存调整

Sql Server 2000内存调整

  发布时间:2010-04-25 11:24:00 

标签:内存,Sql,Server,2000

在我们武汉的一个项目中,用户提供的数据库服务器有16G左右的内存,但我们只能使用8G多的内存,为了提高内存的得用率,特意参考了一些资料,得出一些体会总结出来与各位同道人士分亨。


 SQL Server 2000 企业版支持使用 Microsoft Windows® 2000 地址窗口扩展 (AWE),为在 Windows 2000 Advanced Server 上运行的实例寻到大约 8GB 的内存,为在 Windows 2000 Data Center 上运行的实例寻到大约 64GB 的内存。然而,每个使用该扩展内存的实例都必须静态分配所需的内存。

一、首先要让操作系统使用更多内存。

"/3GB","awe","pae"这三个开关的组合与AWE设置:

内存超过2GB不到8GB可以选用/3GB参数,超过8GB选用/PAE。
   打开boot.ini文件如下:  
   [boot   loader]  
   timeout=30  
   default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS  
   [operating   systems]  
   multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft   Windows   XP   Professional"   /fastdetect   /3GB 

二、Sql Server设置:

 1、3GB寻址  
    当系统有超过2GB的物理内存空间时,需要在boot.ini配置/3GB的启动参数,应用程序才可以使用超过2GB的物理内存:  
   multi(0)disk(0)rdisk(0)partition(2)\winnt=  
         "Windows   2000   Advanced   Server"   /3GB   ...  
    
   而一般的应用程序若需要使用超过3GB的内存,必须在联结(link)时,指定/LargeAddressAware   参数,或是事后通过工具程序Imagecfg.exe(包含在Windows   2000   Advanced   Server   CD中的Support文件夹中)修改执行文件,例如:  
   Imagecfg   -1   myApp.exe  
            
     而SQL   Server执行在联结时就已经采用   /LargeAddressAware选项,所以若系统启动/3GB功能,就自然可以采用.   

 2、AWE   内存寻址  

 一般来说32位的CPU与操作系统受限于寻址能力,最多只能存取到4GB内存,所以前述的两项功能只不过是在分配多少内存给应用程序和多少内存留给操作系统.但若搭配Intel   Pentium   Pro/Xeon   系统的CPU与"物理地址扩充(PAE   Physical   Address   Extension)"技术,可以让   Windows   2000   Advance   Server   存取8GB内存,而Data   Center版本可以存取到64GB大小的内存.应用程序可以调用微软提供"地址窗口扩展(AWE   Address   Windows   Extension)"API   来使用到这些内存.  
           启动PAE的方式与3GB选项相同,都是修改boot.ini:  
   multi(0)disk(0)rdisk(0)partition(2)\WINNT=  
         "Windows   2000   Advanced   Server"   /APE   ... 

3、/3GB选项和/PAE选项可以一起使用,但这反而会限制只能使用16GB的内存.  

  当你要启动/PAE选项配置,需要注意:  

1).由于启动PAE后,需要锁定一地原来2GB内的用户内存区块,借以对应扩展出去的物理内存,而该内存区块就会被应用程序锁定,而不再被系统当做一般的虚拟内存.因此用来执行SQL   Server服务的帐号需要有"Lock   Pages   In   Memory"的权力.若你是通过SQL   Server所提供的Enterprise   Manager,或是通过程序调用DMO来配置服务帐号,则会自动赋予该帐号相关的权限.但若是采用Windows所附的"服务"管理程序来配置SQL Server服务的执行帐号,则需要自行赋予该权力.  

2).任务管理器(Task   Manager)无法在AWE启动后,提供某个程序使用内存的正确数字.  

3).启动AWE后,SQL   Server默认会在启动时吃掉所有的内存,这些内存会阻塞而无法做数据页切换的动作,只留下128MBytes不到的内存给操作系统.所以若还有其他的应用程序,或是第二个SQL   Server执行实例(Instance)想要接着执行,可能会因为没有内存而无法启动.因此若要启动AWE模式,最好先配置"Max   Server   Memory". 

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com