當前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

手工調(diào)整Sql Server2005數(shù)據(jù)庫內(nèi)存 提高內(nèi)存利用率

作者:  來源:  發(fā)布時間:2011-5-16 18:02:37  點擊:
我有一臺數(shù)據(jù)庫服務(wù)器,32位,操作系統(tǒng)是Windows2003企業(yè)版,4G內(nèi)存,320G存儲空間,使用SQLSERVER2005 數(shù)據(jù)庫管理系統(tǒng),里邊有若干個數(shù)據(jù)庫,平時主要處理大量的業(yè)務(wù)外,還設(shè)置了一些同步,由于及時優(yōu)化,CPU 一直保持在5%以下,各項主要指標觀察下來一直正常,如數(shù)據(jù)庫的緩沖命中率保持在95%以上等,所以平時就以默認安裝的模式運行著,本以為SQLSERVER2005能合理的分配內(nèi)存,至少比SQLSERVER2000有了很大的改進,且操作系統(tǒng)也由Windows 2000Server更新為Windows 2003,內(nèi)存不足時無論是系統(tǒng)還是數(shù)據(jù)庫本身都會自動調(diào)整內(nèi)存(Sqlserver2000需要手工調(diào)整,可Google一下),最近觀察不管是什么時候內(nèi)存使用都不超過2G,且SQLSERVER2005占用1.7G的現(xiàn)象,開始以為是數(shù)據(jù)數(shù)內(nèi)存足夠了,也沒有在意,后來越想越覺得有問題,當操作大表時,數(shù)據(jù)庫占用的內(nèi)存都有任何改變,于是Google一下才發(fā)現(xiàn)也需要手工調(diào)整,當然是原因一大堆,想想解釋得也合理。于是也及時進行了調(diào)整,效果還不錯。
這里把調(diào)整的步驟講給大家,希望有同樣問題的朋友參考參考:
1.打開操作系統(tǒng)啟動時PAE 配置項;
步驟:找到系統(tǒng)安裝的引導(dǎo)位置的目錄下找到boot.ini文件,默認是隱藏只讀的,找到 Windows2003 啟動配置,在后面加上空格 /PAE ,保存;重啟
示例所示:
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%= "Windows Server 2003 Datacenter Edition " /PAE
2.打開組策略,添加數(shù)據(jù)庫運行所依賴的帳號有權(quán)進行鎖定內(nèi)存;大部分情況下,數(shù)據(jù)庫運行的帳號都是系統(tǒng)級的帳號,如administrator 或者是 administrators組的帳號,當然也有處于安全考慮的給了一個運行權(quán)限很小的帳號,只能運行數(shù)據(jù)庫;所以必須授權(quán)該帳號具有鎖定內(nèi)存的權(quán)限;
步驟:開始->運行->gpedit.msc->組策略->計算機設(shè)置->windows配置->安全設(shè)置->本地策略->用戶權(quán)限分配->鎖定內(nèi)存頁->本地安全策略設(shè)置->添加->選擇運行的帳號或者組;
3.重啟服務(wù)器,遠程維護的要查看boot.ini是否正確,切起切起,否則后果可想而知;
4.配置數(shù)據(jù)庫,重啟后操作系統(tǒng)已支持大內(nèi)存了,但數(shù)據(jù)庫還是需要配置的;默認都未配置;執(zhí)行以下命令即可
步驟:打開查詢分析器,進行以下操作,這里以3G內(nèi)存給數(shù)據(jù)庫使用為例進行操作,這幾條命令分別含義是:打開高級選項,打開鎖定內(nèi)存,設(shè)置最大內(nèi)存,最好是一起完成;
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 3072
RECONFIGURE
GO
5.重啟數(shù)據(jù)庫,當配置項手工配置好后,需要重啟數(shù)據(jù)庫,這時你就發(fā)現(xiàn)SQLSERVER2005數(shù)據(jù)庫占用多大的內(nèi)存了,再看看數(shù)據(jù)庫的屬性也改變了,AWE上打了勾,最大內(nèi)存改為3G了,以前是很大的,忽悠我^-^
注意點:
1.當操作系統(tǒng)PAE未打開時,配置數(shù)據(jù)庫是沒有用的,數(shù)據(jù)庫會提示出錯,告訴你內(nèi)存鎖定系統(tǒng)當前不支持;
2.Boot.ini 文件是隱藏的,只讀的,先修改屬性后再操作;
3.數(shù)據(jù)庫重啟前最好先備份,防患于未然;
4.不知是操作系統(tǒng)問題,還是盜版的問題,我的SQLSERVER2005在進程任務(wù)管理器只有180M,經(jīng)過和朋友確認,才知是顯示錯誤,其實也不知是錯誤還是就是這樣的,我想有一種可能,那就是系統(tǒng)把3G劃給數(shù)據(jù)庫使用后,自己只有1G,他只知道自己分配的那一塊給數(shù)據(jù)庫系統(tǒng)180M吧;
5.數(shù)據(jù)庫的內(nèi)存設(shè)置有一個合理限度,根據(jù)服務(wù)器業(yè)務(wù)多少確定,但不能超過物理內(nèi)存,我覺得至少得留500M給系統(tǒng)吧,另外如果系統(tǒng)中還有其他的服務(wù)在使用也要考慮進去,否則系統(tǒng)內(nèi)存不足,引起磁盤頁面交換頻繁,反而使性能有所下降。

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z