怎樣優(yōu)化SQLServer數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存配置_Mssql數(shù)據(jù)庫(kù)教程
推薦:談SQL Server數(shù)據(jù)庫(kù)管理常用的SQL和T-SQL語(yǔ)句1. 查看數(shù)據(jù)庫(kù)的版本 select @@version 2. 查看數(shù)據(jù)庫(kù)所在機(jī)器操作系統(tǒng)參數(shù) exec master..xp_msver 3. 查看數(shù)據(jù)庫(kù)啟動(dòng)的參數(shù) sp_configure 4. 查看數(shù)據(jù)庫(kù)啟動(dòng)時(shí)間 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看
|
農(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ù)器的內(nèi)存配置提出一些認(rèn)識(shí)和看法。 一、有關(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ù)雜的計(jì)算。 物理內(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í)使用。如果添加一些服務(wù)和應(yīng)用程序,則對(duì)內(nèi)存的需求就會(huì)急劇增大。如: (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è),可以采用以下方法優(yōu)化內(nèi)存性能。 (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)操作對(duì)話框; ④選擇“是”確認(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è)置為系統(tǒng)中的物理內(nèi)存的大小。 最大值:指出該分頁(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)?ldquo;控制面板”中雙擊“系統(tǒng)”圖標(biāo); ②在“系統(tǒng)特性”對(duì)話框中單擊“性能”標(biāo)簽; ③在虛擬內(nèi)存對(duì)話框中單擊“更改”按鈕,這時(shí)出現(xiàn)“虛擬內(nèi)存”對(duì)話框,上端的驅(qū)動(dòng)器框逐一列出了 Windows NT所有頁(yè)面文件的大小; ④在驅(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)參照上面Windows NT的設(shè)置。 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)需要的最佳值后,生成交換文件的磁盤空間就被浪費(fèi)了。 (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)存,而不產(chǎn)生頁(yè)面調(diào)度。 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)存分配的建議規(guī)劃,供參考。 物理內(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窗口顯示配置選項(xiàng)列表; (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)存、優(yōu)化配置。 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ù)器上盡量不要運(yùn)行其它應(yīng)用程序; (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ù)需求。
|
分享:淺談Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)經(jīng)驗(yàn)Oracle數(shù)據(jù)庫(kù)作為大型數(shù)據(jù)庫(kù)管理系統(tǒng),近年來(lái)一直占有世界上高端數(shù)據(jù)庫(kù)的最大份額,其強(qiáng)大而完善的數(shù)據(jù)庫(kù)管理功能,以及ORACLE公司推陳出新的不斷努力,一直成為IT業(yè)界矚目的焦點(diǎn)。嶺澳核電站的數(shù)據(jù)庫(kù)平臺(tái)采用了ORACLE7.3作為后端平臺(tái),前端選擇了ORACLE公司
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 解讀SQL中自己創(chuàng)建函數(shù) 分割字符串
- SQL Server 2005 DTS導(dǎo)入平面數(shù)據(jù)出現(xiàn)錯(cuò)誤解決方案
- 如何有效防止Java程序源碼被人偷窺?
- SQL Server 2008:開(kāi)辟嶄新數(shù)據(jù)平臺(tái)
- SQL Server游標(biāo)的使用/關(guān)閉/釋放/優(yōu)化小結(jié)
- 解析用SQL Server處理物料清單規(guī)則
- sql2008評(píng)估期已過(guò)的解決辦法及序列號(hào)
- 如何使用SQL Server 2008升級(jí)顧問(wèn)
- 關(guān)于Oracle與SQL Server數(shù)據(jù)庫(kù)鏡像的對(duì)比
- 解析SQL Server 2008性能和可擴(kuò)展性
猜你也喜歡看這些
- SQL提示Login failed for user#039;sa#039;錯(cuò)誤的解決方案
- mysql語(yǔ)句:SET NAMES UTF8
- Mysql中的find_in_set的使用方法介紹
- MYSQL 批量替換之replace語(yǔ)法的使用詳解
- 把視頻文件直接存儲(chǔ)到mysql數(shù)據(jù)庫(kù)的方法
- 基于ubuntu中使用mysql實(shí)現(xiàn)opensips用戶認(rèn)證的解決方法
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- MSSQL清空日志刪除日志文件
- 如何用cmd連接Mysql數(shù)據(jù)庫(kù)
- 30種mysql優(yōu)化sql語(yǔ)句查詢的方法
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索怎樣優(yōu)化SQLServer數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存配置
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-怎樣優(yōu)化SQLServer數(shù)據(jù)庫(kù)服務(wù)器內(nèi)存配置
。