引言
農(nóng)業(yè)銀行總行1998年以來(lái)正式推廣了新版網(wǎng)絡(luò)版綜合業(yè)務(wù)統(tǒng)計(jì)信息系統(tǒng),該系統(tǒng)是基于WindowsNT4.0平臺(tái),采用客戶/服務(wù)器模式,以Microsoft SQL Server為基礎(chǔ)建立起來(lái)的大型數(shù)據(jù)庫(kù)應(yīng)用程序,系統(tǒng)界面友好、操作簡(jiǎn)便,計(jì)算、分析、檢索功能非常強(qiáng)大,為保證農(nóng)業(yè)銀行系統(tǒng)及時(shí)進(jìn)行縱向和橫向業(yè)務(wù)數(shù)據(jù)采集、按照不同要求生成統(tǒng)計(jì)報(bào)表,進(jìn)行全面業(yè)務(wù)活動(dòng)分析提供了強(qiáng)有力的保障。但在這套程序的推廣、維護(hù)中筆者發(fā)現(xiàn)系統(tǒng)有時(shí)運(yùn)行速度較慢,特別是在Win95客戶端操作時(shí)尤為嚴(yán)重,經(jīng)過(guò)排除網(wǎng)線連接等硬件可能帶來(lái)的影響后上述問(wèn)題仍然存在。筆者經(jīng)過(guò)仔細(xì)摸索,發(fā)現(xiàn)系統(tǒng)對(duì)硬、軟件的要求較高,為充分發(fā)揮設(shè)計(jì)效能,達(dá)到最佳運(yùn)作效果,需要對(duì)計(jì)算機(jī)硬、軟件系統(tǒng)進(jìn)行較為完備的性能測(cè)試與最佳配置,特別是內(nèi)存配置的好壞對(duì)系統(tǒng)的運(yùn)行速度具有決定性的作用。下面,筆者就如何優(yōu)化SQLServer數(shù)據(jù)庫(kù)服務(wù)器
一、有關(guān)內(nèi)存的基本概念
1?物理內(nèi)存與虛擬內(nèi)存
WindowsNT使用兩類內(nèi)存:物理內(nèi)存與虛擬內(nèi)存。
物理內(nèi)存:作為RAM芯片安裝在計(jì)算機(jī)內(nèi)部的存儲(chǔ)器。
虛擬內(nèi)存:用于模擬RAM芯片功能的磁盤(硬盤)空間,其實(shí)質(zhì)是通過(guò)將內(nèi)存中當(dāng)前沒(méi)有使用的部分內(nèi)容臨時(shí)存儲(chǔ)到磁盤上,使系統(tǒng)可以使用到比機(jī)器物理內(nèi)存更多的內(nèi)存。
2?分頁(yè)和分頁(yè)文件
WindowsNT系統(tǒng)通過(guò)使用磁盤空間使得對(duì)內(nèi)存的需求得到部分緩解,從而使用到比物理內(nèi)存更多內(nèi)存的技術(shù)就稱為“交換”或分頁(yè),也就是通常所說(shuō)的虛擬內(nèi)存技術(shù)。通常Windows NT 4.0系統(tǒng)安裝時(shí)將在引導(dǎo)驅(qū)動(dòng)器上設(shè)置一個(gè)大小為16MB的交換(分頁(yè))文件(pagefile.sys)。
二、優(yōu)化Windows NT 4.0系統(tǒng)內(nèi)存配置
在大多數(shù)情況下,為了充分發(fā)揮Windows NT 4.0系統(tǒng)效能,內(nèi)存的作用比起處理器的處理能力更具有影響力,特別是在客戶/服務(wù)器模式環(huán)境下更是如此,因?yàn)橥ǔT谶@種環(huán)境下并不十分強(qiáng)調(diào)處理器的能力,相反卻十分注重是否采用足夠的內(nèi)存來(lái)滿足各個(gè)客戶的應(yīng)用需要。此外,為了獲得容錯(cuò)功能和保護(hù)應(yīng)用程序,保證應(yīng)用程序高速運(yùn)行、充分發(fā)揮設(shè)計(jì)功能都需要有足夠多的內(nèi)存,特別是工業(yè)繪圖設(shè)計(jì)和各種工程應(yīng)用程序更需要占用大量的內(nèi)存來(lái)進(jìn)行復(fù)雜的物理內(nèi)存(RAM)方便快速的優(yōu)點(diǎn)顯而易見(jiàn),但由于其價(jià)格昂貴,也就不可能做到多多益善
了,因此通過(guò)合理優(yōu)化內(nèi)存配置、擴(kuò)充虛擬內(nèi)存提高計(jì)算機(jī)運(yùn)算速度也就成了一項(xiàng)很重要的應(yīng)用技術(shù)手段。
1:保證Windows NT系統(tǒng)基本內(nèi)存需求
Windows NT 4.0系統(tǒng)至小應(yīng)配置12MB內(nèi)存,16MB內(nèi)存基本夠用,正常情況下保證NT系統(tǒng)有32MB內(nèi)存就可以了,因?yàn)椴⒉皇撬械?6MB基本內(nèi)存在任何時(shí)候都被同時(shí)使用。如果添加一些
(1)添加網(wǎng)絡(luò)服務(wù)需要4MB內(nèi)存空間;
(2)容錯(cuò)功能和系統(tǒng)保護(hù)功能需要8MB內(nèi)存(如磁盤鏡像和分條功能);
(3)進(jìn)行圖形圖象處理需要增加16MB內(nèi)存空間;
(4)安裝VC、VB開(kāi)發(fā)系統(tǒng)需要增加16MB內(nèi)存空間;
另外,如在Windows NT上構(gòu)建大型數(shù)據(jù)庫(kù)如SYBASE、Microsoft SQL Server等,對(duì)內(nèi)存的
2:優(yōu)化內(nèi)存性能
為了使WindowsNT不至于過(guò)分占用較多的內(nèi)存或者浪費(fèi)處理器的時(shí)間用于換頁(yè),可以采用
(1)減少顯示顏色的數(shù)量;
(2)降低顯示分辨率;
(3)盡可能不使用或使用位寬度較小的墻紙;
(4)關(guān)閉不需要的服務(wù)程序或驅(qū)動(dòng)程序,盡量不要在服務(wù)器上使用其它應(yīng)用程序。
停用服務(wù)或驅(qū)動(dòng)程序的操作步驟如下:
①確定需要停用的服務(wù)或驅(qū)動(dòng)程序的名稱;
②從“控制面板”中雙擊“服務(wù)”或“設(shè)備”圖標(biāo);
③在列表中選擇想要停用的服務(wù)或設(shè)備驅(qū)動(dòng)程序的名稱,單擊“停止”按鈕,這時(shí)出現(xiàn)確
④選擇“是”確認(rèn)操作,然后關(guān)閉對(duì)話框完成設(shè)置。
3:優(yōu)化虛擬內(nèi)存
在對(duì)Windows NT虛擬內(nèi)存進(jìn)行設(shè)置時(shí)需要合理確定各個(gè)驅(qū)動(dòng)器分頁(yè)文件的“起始大小”和“最大值”兩個(gè)參數(shù),它們用于指定分頁(yè)文件的起始空間和最大空間。下面對(duì)這兩個(gè)參數(shù)作一
起始大小:指初始創(chuàng)建該分頁(yè)文件時(shí)的文件大小,單位為MB,根據(jù)缺省設(shè)置,這個(gè)值被設(shè)
最大值:指出該分頁(yè)文件的最大尺寸,單位為MB。
(1)分頁(yè)文件的設(shè)置原則:
①分頁(yè)文件起始大小應(yīng)保留缺省設(shè)置,一般情況下請(qǐng)不要改動(dòng);
②分頁(yè)文件理想的最大尺寸為系統(tǒng)物理內(nèi)存尺寸的2.5倍至4倍。需要說(shuō)明的是:如果系統(tǒng)
工作時(shí)不需要大量?jī)?nèi)存,請(qǐng)選擇靠近下限的值,即用系統(tǒng)物理內(nèi)存的2.5倍作為這個(gè)尺寸的起
始值;如果系統(tǒng)工作時(shí)需要大量?jī)?nèi)存,請(qǐng)選擇靠近上限的值。
(2)Windows NT虛擬內(nèi)存設(shè)置步驟:
①?gòu)摹翱刂泼姘濉敝须p擊“系統(tǒng)”圖標(biāo);
②在“系統(tǒng)特性”對(duì)話框中單擊“性能”標(biāo)簽;
③在虛擬內(nèi)存對(duì)話框中單擊“更改”按鈕,這時(shí)出現(xiàn)“虛擬內(nèi)存”對(duì)話框,上端的驅(qū)動(dòng)器
④在驅(qū)動(dòng)器列表中,選擇需要設(shè)置分頁(yè)文件的驅(qū)動(dòng)器盤符,在“驅(qū)動(dòng)器頁(yè)面文件大小”對(duì)
話框中列出了“起始大小”和“最大值”兩個(gè)參數(shù)欄,填入按照上面的原則確定的數(shù)值;
⑤單擊“設(shè)置”確認(rèn)以上操作,然后依次單擊“確定”按鈕退出各個(gè)對(duì)話框,完成設(shè)置。
(3)Win95/98虛擬內(nèi)存設(shè)置。
Win95/98虛擬內(nèi)存設(shè)置方法、步驟和原則與Windows NT 4.0的設(shè)置大致相同,請(qǐng)參照上
4:注意事項(xiàng)
(1)合理確定分頁(yè)文件的最大值,根據(jù)系統(tǒng)需求隨時(shí)進(jìn)行調(diào)整,使用過(guò)多虛擬內(nèi)存將導(dǎo)致整個(gè)系統(tǒng)處理性能的下降。設(shè)置虛擬內(nèi)存最大值的目的是使用戶不必在WindowsNT的交換文件上消耗過(guò)多的磁盤空間,通常情況下如果超過(guò)了系統(tǒng)需要的最佳值后,生成交換文件的磁盤空
(2)盡可能設(shè)立專用硬盤配置內(nèi)存交換區(qū),或?qū)⒔粨Q空間放到主硬盤的另一個(gè)分區(qū),同時(shí)應(yīng)將主硬盤的交換文件大小降至16MB,這樣主硬盤(分區(qū))僅用來(lái)放置操作系統(tǒng)和應(yīng)用程序,就可以減少交換次數(shù),防止頻繁交換耗費(fèi)大量CPU時(shí)間。
(3)虛擬內(nèi)存技術(shù)的確改善了Windows NT系統(tǒng)的性能,但也受到機(jī)器硬盤空間大小、硬盤速度、處理器(CPU)速度的影響,從理想角度出發(fā),要提高計(jì)算機(jī)的性能就必須減少交換操作的次數(shù),但是沒(méi)有一個(gè)WindowsNT計(jì)算機(jī)不發(fā)生交換,這就要求計(jì)算機(jī)要有足夠的物理內(nèi)存,
三、優(yōu)化Microsoft SQL Server數(shù)據(jù)庫(kù)內(nèi)存配置
內(nèi)存是影響Microsoft SQL Server系統(tǒng)性能的一個(gè)重要因素,SQL Server數(shù)據(jù)庫(kù)安裝時(shí)將
為具有32MB物理內(nèi)存的機(jī)器缺省配置16MB可用內(nèi)存,16MB物理內(nèi)存的機(jī)器缺省配置4MB可用內(nèi)
存。應(yīng)在Microsoft SQL Server數(shù)據(jù)庫(kù)安裝后進(jìn)行內(nèi)存選項(xiàng)(Memory)設(shè)置,最大配置值為2GB
為了確定SQL Server系統(tǒng)最適宜的內(nèi)存需求,可以從總的物理內(nèi)存中減去Windows NT4.0
需要的內(nèi)存以及其它一些內(nèi)存需求后綜合確定,理想的情況是給SQL Server分配盡可能多的內(nèi)
1?根據(jù)物理內(nèi)存合理規(guī)劃SQL Server可用內(nèi)存
在大多數(shù)的生產(chǎn)環(huán)境中,服務(wù)器配備的物理內(nèi)存是64MB~128MB,偶爾也有256MB的,只要
配置恰當(dāng)是完全可以滿足SQL Server的內(nèi)存需求的。下表是筆者關(guān)于SQL Server內(nèi)存分配的建
物理內(nèi)存 分配給SQL Server 設(shè)置值(單位:2KB)
8MB 4MB 2048
16MB 8MB 4096
32MB 16~18MB 8192~9216
48MB 28~34MB 14336~17408
64MB 40~46MB 20480~23552
128MB 100~108MB 51200~55296
256MB 216~226MB 110592~115712
512MB 464~472MB 237568~241664
以下是SQL Server內(nèi)存選項(xiàng)(Memory)設(shè)置方法
(1)從Microsoft SQL Server程序集中啟動(dòng)SQL Enterprise Manager;
(2)從Server Manager窗口中選擇“Server”菜單選項(xiàng);
(3)在“Server”菜單中選擇“Configurations”選項(xiàng);
(4)在“Server Configuration”對(duì)話框中選擇”Configuration”標(biāo)簽,Configuration
(5)選中“Memory”項(xiàng)目,在“Current”欄填入新值;
(6)停止并重新啟動(dòng)SQLServer服務(wù),使設(shè)置生效。
2?合理擴(kuò)充虛擬內(nèi)存、增大SQL Server可用內(nèi)存
當(dāng)SQL Server系統(tǒng)確實(shí)需要擴(kuò)大可用內(nèi)存時(shí),應(yīng)在磁盤空間充足的情況下擴(kuò)充供虛擬內(nèi)存
,并相應(yīng)增大SQL Server可用內(nèi)存。具體做法是,系統(tǒng)管理員首先擴(kuò)充服務(wù)器的虛擬內(nèi)存,然
后再參考上表增大SQL Server可用內(nèi)存,關(guān)鍵是要根據(jù)系統(tǒng)的負(fù)載情況綜合決定是否擴(kuò)充內(nèi)存
3?使用tempinRAM
SQL Server使用tempdb臨時(shí)數(shù)據(jù)庫(kù)作為一些查詢連接操作時(shí)排序或創(chuàng)建臨時(shí)表的工作空間。將tempdb創(chuàng)建在RAM中可以使系統(tǒng)操作性能有較大提高,而且因?yàn)閠empdb在每次重啟動(dòng)服務(wù)器時(shí)都重建,這樣即使有非正常的關(guān)閉也是較為安全的,例如停電故障。要將tempdb創(chuàng)建在RAM中,可以使用sp_configure進(jìn)行設(shè)置,具體用法請(qǐng)參閱有關(guān)資料。
由于tempdbinRAM使用的內(nèi)存是由系統(tǒng)從內(nèi)存體單獨(dú)分配的,與SQL Server的內(nèi)存選項(xiàng)設(shè)置的可用內(nèi)存池是分開(kāi)的,使用tempdbin RAM將減少整個(gè)系統(tǒng)的可用內(nèi)存,應(yīng)根據(jù)SQL Server和服務(wù)器運(yùn)行情況進(jìn)行配置,否則就可能適得其反,影響系統(tǒng)性能。另外,適當(dāng)增加tempdb數(shù)據(jù)庫(kù)空間,即使不使用tempdbin RAM,也可以提高數(shù)據(jù)庫(kù)的運(yùn)行速度。
4?注意事項(xiàng)
(1)建議在生產(chǎn)環(huán)境中SQL Server不要設(shè)置小于32MB內(nèi)存,而且數(shù)據(jù)庫(kù)服務(wù)器上盡量不要
(2)擴(kuò)充供虛擬內(nèi)存、增大SQL Server可用內(nèi)存,應(yīng)考慮物理內(nèi)存使用狀況和磁盤空間許
(3)在可能的情況下,要為系統(tǒng)留有部分額外的內(nèi)存,這樣在服務(wù)器上打開(kāi)一個(gè)服務(wù)或添
加一個(gè)進(jìn)程且不改變SQL Server內(nèi)存配置時(shí),不致于使NT服務(wù)器的運(yùn)行速度受到影響(變得很
慢),一般認(rèn)為最小為2MB最大為20MB。
四、巧用內(nèi)存配置,解決統(tǒng)計(jì)服務(wù)器問(wèn)題
一單位的統(tǒng)計(jì)服務(wù)器投入使用后,運(yùn)行速度較慢,經(jīng)排查原因,發(fā)現(xiàn)SQLServer中的內(nèi)存選項(xiàng)(Memory)僅為安裝缺省值??16MB(而服務(wù)器有128MB的物理內(nèi)存),在將內(nèi)存值調(diào)整為100MB時(shí)卻誤將其改成了1000MB,使得SQL Server服務(wù)不能啟動(dòng),統(tǒng)計(jì)數(shù)據(jù)庫(kù)打不開(kāi),也就不能再次進(jìn)入SQL Enterprise Manager修改內(nèi)存設(shè)置了。由于近期未備份業(yè)務(wù)數(shù)據(jù),不到萬(wàn)不得已不能重裝SQLServer數(shù)據(jù)庫(kù),就試圖用命令行參數(shù)命令來(lái)重新啟動(dòng)SQL Server服務(wù),但均不能奏效,陷入了困境。我們經(jīng)過(guò)仔細(xì)分析提出:既然SQL Server可用內(nèi)存設(shè)置值遠(yuǎn)遠(yuǎn)大于物理內(nèi)存,造成SQLServer服務(wù)不能啟動(dòng),何不擴(kuò)充虛擬內(nèi)存呢?經(jīng)設(shè)法將機(jī)器虛擬內(nèi)存擴(kuò)充至1000MB并重新啟動(dòng),SQL Server數(shù)據(jù)庫(kù)成功啟動(dòng),問(wèn)題迎刃而解。
五、結(jié)束語(yǔ)
目前,大多數(shù)單位投入使用的Microsoft SQL Server數(shù)據(jù)庫(kù)服務(wù)器的物理內(nèi)存一般都在64MB以上,如農(nóng)業(yè)銀行省、市分行的統(tǒng)計(jì)服務(wù)器配備128MB物理內(nèi)存,只要按照上面提出的方法合理規(guī)劃、優(yōu)化NT和SQL Server的內(nèi)存配置,使設(shè)置盡可能達(dá)到最優(yōu),應(yīng)用系統(tǒng)就一定能夠充分發(fā)揮設(shè)計(jì)功能、滿足業(yè)務(wù)需求。
新聞熱點(diǎn)
疑難解答
圖片精選