淺談優化SQLServer數據庫服務器內存配置的策略

引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 
農業銀行總行1998年以來正式推廣了新版網絡版綜合業務統計信息系統,該系統是基于WindowsNT4.0平臺,采用客戶/服務器模式,以Microsoft SQL Server為基礎建立起來的大型數據庫應用程序,系統界面友好、操作簡便,計算、分析、檢索功能非常強大,為保證農業銀行系統及時進行縱向和橫向業務數據采集、按照不同要求生成統計報表,進行全面業務活動分析提供了強有力的保障。但在這套程序的推廣、維護中筆者發現系統有時運行速度較慢,特別是在Win95客戶端操作時尤為嚴重,經過排除網線連接等硬件可能帶來的影響后上述問題仍然存在。筆者經過仔細摸索,發現系統對硬、軟件的要求較高,為充分發揮設計效能,達到最佳運作效果,需要對計算機硬、軟件系統進行較為完備的性能測試與最佳配置,特別是內存配置的好壞對系統的運行速度具有決定性的作用。下面,筆者就如何優化SQLServer數據庫服務器的內存配置提出一些認識和看法。

一、有關內存的基本概念

  1物理內存與虛擬內存
  WindowsNT使用兩類內存:物理內存與虛擬內存。
  物理內存:作為RAM芯片安裝在計算機內部的存儲器。
  虛擬內存:用于模擬RAM芯片功能的磁盤(硬盤)空間,其實質是通過將內存中當前沒有使用的部分內容臨時存儲到磁盤上,使系統可以使用到比機器物理內存更多的內存。
  2分頁和分頁文件
  WindowsNT系統通過使用磁盤空間使得對內存的需求得到部分緩解,從而使用到比物理內存更多內存的技術就稱為“交換”或分頁,也就是通常所說的虛擬內存技術。通常Windows NT 4.0系統安裝時將在引導驅動器上設置一個大小為16MB的交換(分頁)文件(pagefile.sys)。

二、優化Windows NT 4.0系統內存配置

  在大多數情況下,為了充分發揮Windows NT 4.0系統效能,內存的作用比起處理器的處理能力更具有影響力,特別是在客戶/服務器模式環境下更是如此,因為通常在這種環境下并不十分強調處理器的能力,相反卻十分注重是否采用足夠的內存來滿足各個客戶的應用需要。此外,為了獲得容錯功能和保護應用程序,保證應用程序高速運行、充分發揮設計功能都需要有足夠多的內存,特別是工業繪圖設計和各種工程應用程序更需要占用大量的內存來進行復雜的計算。
  物理內存(RAM)方便快速的優點顯而易見,但由于其價格昂貴,也就不可能做到多多益善了,因此通過合理優化內存配置、擴充虛擬內存提高計算機運算速度也就成了一項很重要的應用技術手段。
  1保證Windows NT系統基本內存需求
  Windows NT 4.0系統至小應配置12MB內存,16MB內存基本夠用,正常情況下保證NT系統有32MB內存就可以了,因為并不是所有的16MB基本內存在任何時候都被同時使用。如果添加一些服務和應用程序,則對內存的需求就會急劇增大。如:
  (1)添加網絡服務需要4MB內存空間;
  (2)容錯功能和系統保護功能需要8MB內存(如磁盤鏡像和分條功能);
  (3)進行圖形圖象處理需要增加16MB內存空間;
  (4)安裝VC、VB開發系統需要增加16MB內存空間;
  另外,如在Windows NT上構建大型數據庫如SYBASE、Microsoft SQL Server等,對內存的需求就更多了。
  2優化內存性能
  為了使WindowsNT不至于過分占用較多的內存或者浪費處理器的時間用于換頁,可以采用以下方法優化內存性能。
  (1)減少顯示顏色的數量;
  (2)降低顯示分辨率;
  (3)盡可能不使用或使用位寬度較小的墻紙;
  (4)關閉不需要的服務程序或驅動程序,盡量不要在服務器上使用其它應用程序。
  停用服務或驅動程序的操作步驟如下:
  ①確定需要停用的服務或驅動程序的名稱;
  ②從“控制面板”中雙擊“服務”或“設備”圖標;
  ③在列表中選擇想要停用的服務或設備驅動程序的名稱,單擊“停止”按鈕,這時出現確認操作對話框;
  ④選擇“是”確認操作,然后關閉對話框完成設置。
  3優化虛擬內存
  在對Windows NT虛擬內存進行設置時需要合理確定各個驅動器分頁文件的“起始大小”和“最大值”兩個參數,它們用于指定分頁文件的起始空間和最大空間。下面對這兩個參數作一些解釋:
  起始大小:指初始創建該分頁文件時的文件大小,單位為MB,根據缺省設置,這個值被設置為系統中的物理內存的大小。
  最大值:指出該分頁文件的最大尺寸,單位為MB。
  (1)分頁文件的設置原則:
  ①分頁文件起始大小應保留缺省設置,一般情況下請不要改動;
  ②分頁文件理想的最大尺寸為系統物理內存尺寸的2.5倍至4倍。需要說明的是:如果系統工作時不需要大量內存,請選擇靠近下限的值,即用系統物理內存的2.5倍作為這個尺寸的起始值;如果系統工作時需要大量內存,請選擇靠近上限的值。
  (2)Windows NT虛擬內存設置步驟:
  ①從“控制面板”中雙擊“系統”圖標;
  ②在“系統特性”對話框中單擊“性能”標簽;
  ③在虛擬內存對話框中單擊“更改”按鈕,這時出現“虛擬內存”對話框,上端的驅動器框逐一列出了 Windows NT所有頁面文件的大小;
  ④在驅動器列表中,選擇需要設置分頁文件的驅動器盤符,在“驅動器頁面文件大小”對話框中列出了 “起始大小”和“最大值”兩個參數欄,填入按照上面的原則確定的數值;
  ⑤單擊“設置”確認以上操作,然后依次單擊“確定”按鈕退出各個對話框,完成設置。
  (3)Win95/98虛擬內存設置。
  Win95/98虛擬內存設置方法、步驟和原則與Windows NT 4.0的設置大致相同,請參照上面Windows NT的設置。
  4注意事項
  (1)合理確定分頁文件的最大值,根據系統需求隨時進行調整,使用過多虛擬內存將導致整個系統處理性能的下降。設置虛擬內存最大值的目的是使用戶不必在WindowsNT的交換文件上消耗過多的磁盤空間,通常情況下如果超過了系統需要的最佳值后,生成交換文件的磁盤空間就被浪費了。
  (2)盡可能設立專用硬盤配置內存交換區,或將交換空間放到主硬盤的另一個分區,同時應將主硬盤的交換文件大小降至16MB,這樣主硬盤(分區)僅用來放置操作系統和應用程序,就可以減少交換次數,防止頻繁交換耗費大量 CPU時間。
  (3)虛擬內存技術的確改善了Windows NT系統的性能,但也受到機器硬盤空間大小、硬盤速度、處理器 (CPU)速度的影響,從理想角度出發,要提高計算機的性能就必須減少交換操作的次數,但是沒有一個WindowsNT計算機不發生交換,這就要求計算機要有足夠的物理內存,以保持最少的交換操作。

三、優化Microsoft SQL Server數據庫內存配置

  內存是影響Microsoft SQL Server系統性能的一個重要因素,SQL Server數據庫安裝時將為具有32MB物理內存的機器缺省配置16MB可用內存,16MB物理內存的機器缺省配置4MB可用內存。應在Microsoft SQL Server數據庫安裝后進行內存選項(Memory)設置,最大配置值為2GB。
  為了確定SQL Server系統最適宜的內存需求,可以從總的物理內存中減去Windows NT4.0需要的內存以及其它一些內存需求后綜合確定,理想的情況是給SQL Server分配盡可能多的內存,而不產生頁面調度。
  1根據物理內存合理規劃SQL Server可用內存
  在大多數的生產環境中,服務器配備的物理內存是64MB~128MB,偶爾也有256MB的,只要配置恰當是完全可以滿足SQL Server的內存需求的。下表是筆者關于SQL Server內存分配的建議規劃,供參考。

物理內存 分配給SQL Server 設置值(單位: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內存選項(Memory)設置方法
  (1)從Microsoft SQL Server程序集中啟動SQL Enterprise Manager;
  (2)從Server Manager窗口中選擇“Server”菜單選項;
  (3)在“Server”菜單中選擇“Configurations”選項;
  (4)在“Server Configuration”對話框中選擇”Configuration”標簽,Configuration窗口顯示配置選項列表;
  (5)選中“Memory”項目,在“Current”欄填入新值;
  (6)停止并重新啟動SQLServer服務,使設置生效。
  2合理擴充虛擬內存、增大SQL Server可用內存
  當SQL Server系統確實需要擴大可用內存時,應在磁盤空間充足的情況下擴充供虛擬內存,并相應增大 SQL Server可用內存。具體做法是,系統管理員首先擴充服務器的虛擬內存,然后再參考上表增大SQL Server可用內存,關鍵是要根據系統的負載情況綜合決定是否擴充內存、優化配置。
  3使用tempinRAM
  SQL Server使用tempdb臨時數據庫作為一些查詢連接操作時排序或創建臨時表的工作空間。將tempdb創建在RAM中可以使系統操作性能有較大提高,而且因為tempdb在每次重啟動服務器時都重建,這樣即使有非正常的關閉也是較為安全的,例如停電故障。要將tempdb創建在RAM中,可以使用sp_configure進行設置,具體用法請參閱有關資料。
  由于tempdbinRAM使用的內存是由系統從內存體單獨分配的,與SQL Server的內存選項設置的可用內存池是分開的,使用tempdbin RAM將減少整個系統的可用內存,應根據SQL Server和服務器運行情況進行配置,否則就可能適得其反,影響系統性能。另外,適當增加tempdb數據庫空間,即使不使用tempdbin RAM,也可以提高數據庫的運行速度。
  4注意事項
  (1)建議在生產環境中SQL Server不要設置小于32MB內存,而且數據庫服務器上盡量不要運行其它應用程序;
  (2)擴充供虛擬內存、增大SQL Server可用內存,應考慮物理內存使用狀況和磁盤空間許可情況;
  (3)在可能的情況下,要為系統留有部分額外的內存,這樣在服務器上打開一個服務或添加一個進程且不改變SQL Server內存配置時,不致于使NT服務器的運行速度受到影響(變得很慢),一般認為最小為2MB最大為20MB。
四、巧用內存配置,解決統計服務器問題

  一單位的統計服務器投入使用后,運行速度較慢,經排查原因,發現SQLServer中的內存選項(Memory)僅為安裝缺省值——16MB(而服務器有128MB的物理內存),在將內存值調整為100MB時卻誤將其改成了 1000MB,使得SQL Server服務不能啟動,統計數據庫打不開,也就不能再次進入SQL Enterprise Manager修改內存設置了。由于近期未備份業務數據,不到萬不得已不能重裝SQLServer數據庫,就試圖用命令行參數命令來重新啟動SQL Server服務,但均不能奏效,陷入了困境。我們經過仔細分析提出:既然SQL Server可用內存設置值遠遠大于物理內存,造成SQLServer服務不能啟動,何不擴充虛擬內存呢?經設法將機器虛擬內存擴充至1000MB并重新啟動,SQL Server數據庫成功啟動,問題迎刃而解。

五、結束語

  目前,大多數單位投入使用的Microsoft SQL Server數據庫服務器的物理內存一般都在64MB以上,如農業銀行省、市分行的統計服務器配備128MB物理內存,只要按照上面提出的方法合理規劃、優化NT和SQL Server的內存配置,使設置盡可能達到最優,應用系統就一定能夠充分發揮設計功能、滿足業務需求。□

季廣勝(中國農業銀行江蘇省泰州市分行信息電腦中心,江蘇 泰州 225300)

參 考 文 獻

1,Jim Boye Windows NT 4.0 INSTALLATION& CONFIGURATION 北京:機械工業出版社,1997 7
2,Microsoft公司網絡數據庫系統管理 Microsoft SQL Server 6.0北京:科學出版社,1997 1

轉載于:https://www.cnblogs.com/runfeng/archive/2006/07/03/441691.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277208.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277208.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277208.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

知道第一章計算機基礎知識作業答案,大學計算機基礎作業答案

大學計算機基礎作業答案第一章 現代社會與計算機1. 什么事信息,其主要特征是什么?答:信息是可傳遞和共享的,可消除人們認知上的不確定因素,對人們的決策具有現實或潛在價值的知識。特征:普遍性、依附性、共…

Netflix推薦系統(Part two)-系統架構

Netflix在2013年公布了自己推薦系統的架構,本文主要總結和翻譯自System Architectures for Personalization and Recommendation,但這并不是一篇完整的翻譯文章。 Overview 首先,我們在下圖中提供推薦系統的整體系統圖。 該體系結構的主要組件…

母版頁可以動態切換嗎?

通過設置“MasterPageFile”屬性可以做到,然而這個屬性只能在“Page_PreInit”事件之中或之前設置。在Page_PreInit事件或之前,當前頁面包含的對象還沒有被生成,不能訪問,所以,如果想根據當前頁面上某個控件的值動態切…

httpclient 多附件上傳

多附件上傳實例&#xff1a; /*** 多附件上傳* param host* param uri* param attachment 附件* param param body參數* return*/public String upload(String host, String uri, Map<String,String> attachment, Map<String, String> param) {logger.info("…

加拿大大學 計算機專業排名2015,加拿大大學計算機專業排名top15

加拿大大學計算機專業排名。加拿大開設計算機專業的很多高校還提供帶薪實習機會&#xff0c;吸引了眾多國際學子前往留學。在加拿大計算機專業優秀的大學很多。同時&#xff0c;加拿大計算機專業排名在世界上也非常的靠前&#xff0c;在加拿大有很多大學值得廣大計算機熱愛者選…

如何讀懂并寫出裝逼的函數式代碼

今天在微博上看到了 有人分享了下面的這段函數式代碼&#xff0c;我把代碼貼到下面&#xff0c;不過我對原來的代碼略有改動&#xff0c;對于函數式的版本&#xff0c;咋一看&#xff0c;的確令人非常費解&#xff0c;仔細看一下&#xff0c;你可能就暈掉了&#xff0c;似乎完全…

如何打通高薪的黃金通道 成為職場金領

身在職場的你&#xff0c;是否想過有朝一日能獲得百萬年薪&#xff1f;最近&#xff0c;央視二套絕對挑戰特別節目巔峰營銷的熱播&#xff0c;引發各方人士對東風日產百萬年薪招兵營銷總監的關注。身價百萬的營銷總監人人想當&#xff0c;如何才能成為這樣的職場金領&#xff0…

iView 實戰系列教程(21課時)_2.iView 實戰教程之導航、路由、鑒權篇

在c盤創建一個iview-router的項目、然后使用默認的配置跳過添加vue-router的插件編譯我們的文件。編譯好之后&#xff0c;我們啟動App默認的頁面就打開了。默認兩個路由一個是about界面一個是home我們使用編輯器打開代碼&#xff0c;用我們的iview的menu組件替換掉這兩個路由在…

計算機專業單元測試卷答案,銀保監會考試題庫:計算機類模擬試題練習(六)答案...

2020銀保監會招聘考試即將開始。根據往年經驗&#xff0c;銀保監會招聘考試科目包括行測、申論和專業科目共三科&#xff0c;專業科目是考試提分的關鍵&#xff0c;那么如何才能提升專業科目的做題速度并快速提分呢&#xff1f;別擔心&#xff0c;中公金融人小編根據歷年的考試…

Ubuntu安裝Nginx

在Ubuntu下安裝Nginx有以下方法&#xff0c;但是如果想要安裝最新版本的就必須下載源碼包編譯安裝。 一、基于APT源安裝 sudo apt-get install nginx 安裝好的文件位置&#xff1a; /usr/sbin/nginx&#xff1a;主程序 /etc/nginx&#xff1a;存放配置文件 /usr/share/nginx&am…

9.28PMP每日一題

控制質量過程的輸出是&#xff1a;A、變更請求B、批準的變更請求C、工作績效數據D、事業環境因素 答案將于明天和新題一起發布&#xff01;9.27試題答案&#xff1a;C轉載于:https://blog.51cto.com/13554215/2287292

將數組綁定到dropdownlist上

<% Page Language"C#" %><% Import Namespace"System.Data" %><Script Language"C#" Runat"Server">public void Page_Load(Object src,EventArgs e){ //首先建立一個數組 ArrayList arrnew ArrayList(); …

HTML標題h,HTML H標題標簽

可以將HTML標題或HTML h標簽定義為要在網頁上顯示的標題或副標題。當你將文本放在標題標簽……… h1>內時, 它在瀏覽器中以粗體顯示, 并且文本的大小取決于標題的數量。從到標簽定義了六個不同的HTML標題, 從最高級別h1(主標題)到最低級別h6(最重要的標題)。h1是最大的標題標…

湯姆大叔的6道javascript編程題題解

1、找出數字數組中最大的元素&#xff08;使用Math.max函數&#xff09; 123var a [1, 2, 3, 6, 5, 4];var ans Math.max.apply(null, a);console.log(ans); // 6這題很巧妙地用了apply&#xff0c;如果不是數組&#xff0c;是很多數字求最大值&#xff0c;我們知道可以這樣…

Android 多線程之幾個基本問題

Android中的進程和線程 Android中的一個應用程序一般就對應著一個進程&#xff0c;多進程的情況可以參考Android 多進程通信之幾個基本問題 Android中更常見的是多線程的情況&#xff0c;一個應用程序中一般都有包括UI線程等多個線程。Android中規定網絡訪問必須在子線程中進行…

Web下的整體測試

隨著Internet的日益普及&#xff0c;現在基于B/S結構的大型應用越來越多&#xff0c;可如何對這些應用進行測試成為日益迫切的問題。有許多測試人員來信問我B/S的測試如何做&#xff0c;由于工作較繁忙&#xff0c;對大家提出的問題也是頭痛醫頭腳痛醫腳&#xff0c;沒有對WEB的…

用計算機算算術平方根順序是ON然后是什么,第2課時用計算器求一個正數的算術平方根.ppt...

1.比較下列各組數的大小&#xff1a;(1) 與(2) 與 8依次按鍵顯示&#xff1a;1.732 050 808例3 小麗想用一塊面積為400 cm2的正方形紙片&#xff0c;沿著邊的方向剪出一塊面積為300 cm2的長方形紙片&#xff0c;使它的長寬之比為3:2&#xff0e;她不知能否裁得出來&#xff0c;…

MySQL 命令

版權聲明&#xff1a;本文首發 http://asing1elife.com &#xff0c;轉載請注明出處。 https://blog.csdn.net/asing1elife/article/details/82892834 MySQL 一些常見命令 更多精彩 更多技術博客&#xff0c;請移步 asing1elife’s blog 查看版本號 mysql -V重啟/啟動/停止 mys…

Bookshelf 2 簡單DFS

鏈接&#xff1a;https://ac.nowcoder.com/acm/contest/993/C來源&#xff1a;牛客網 題目描述 Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top.FJ…

一步一步SharePoint 2007之五:向網站中添加一個子網站

一步一步SharePoint 2007之五&#xff1a;向網站中添加一個子網站摘要感受完看到成果的激動&#xff0c;感受完鄰家女孩的漂亮、可愛和端莊&#xff0c;不要停止&#xff0c;來&#xff0c;讓我們一起來動手打造心目中的完美女神吧&#xff01;本篇文章將介紹如何向一個網站中添…