MSSQL配置學習筆記之二

sqysl發表於2009-06-09

昨天,我看了點MSSQL配置的資料,上次筆記離現在已經有很多天了,今天堅持把它寫完吧,人就是這樣,很多事情你只要懶,一放下,可能就很久沒機會去完成,堅持。。。:
AWE:該選項可以使Address windowing extensions可以用,從而做到對大記憶體的支援,進而使得MSSQL可以使用WINDOWS企業版、開發版和標準版所有記憶體。但特例是,當你使用MSSQL64位版本時,只能使用到windows開發、標準版的32t的記憶體。已經足夠了。當你AWE可用時,mssql2005在windows2000上並非動態管理記憶體,而是在啟動時就儘量獲取能獲得的記憶體。但在windows2003上,mssql2005對AWE可用時倒是覺得有動態管理的意思,啟動時只是使用一部分AWE對映記憶體,然後,如果需要更多記憶體,作業系統可以動態分配給它,如果記憶體過剩,MSSQL2005又可以動態返還給作業系統。
當你在WINDOWS2000和WINDOWS2003上AWE可用時,MSSQL2005會鎖定記憶體頁,因此,這樣在記憶體緊張時,會迫使其他應用交換出記憶體,因此,使用AWE的同時,應該設定一下max server memory的值,以免因為MSSQL2005需要過多記憶體而將其他應用程式擠出實體記憶體。
如果你在同一臺機器上執行了多個MSSQL版本,並且AWE可用,那麼你一定要密切關注某些配置:
1、確信有max server memory配置;
2、各個例項max server memory配置之和要小於機器的實體記憶體;
如果各個例項max server memory之和超過了機器的實體記憶體,那麼一些例項講無法啟動或以比max server memory配置小的記憶體啟動;
例如:如果機器記憶體為48G,三個例項max server memory均為16G,那麼第一個例項會以16G記憶體啟動,第二個會以比16G稍少的(最多少128m)記憶體啟動,而第三個會以動態記憶體模式啟動,啟動記憶體最多為128M。
User connections:如果該值為預設值0,那麼MSSQL會動態調整同時連線到SERVER的數量,即使你設定了不同值,MSSQL也不會為所有連線分配足夠的記憶體,直到使用者實際連線資料庫。當MSSQL啟動時,它會分配一個陣列,其中有很多項,數目和該配置相同;希望不要把該引數配置過大,畢竟無論使用者是否使用,每個連線會佔用系統的28k的記憶體,這對系統來說也是不小的開銷。同時,你也不要設定太低,因為當使用者實際連線超過該設定時,系統會報錯,並且直到其他已連線使用者釋放一個連線,否則,不能連線(DAC連線除外)。對該配置引數,理想的情況是不要動它,讓系統動態調整它。
Locks:該引數配置系統各類鎖的數目。預設值為0,這就是說,當MSSQL啟動時,鎖管理器會為每個節點(這裡本人懷疑作者失誤,應該為例項吧)獲取足夠的記憶體來生成一個2500個鎖的初始鎖池。當鎖池裡的鎖用完時,鎖管理器會從BUFFER POOL裡獲取更多的記憶體。如果要獲取的記憶體比BUFFER POOL裡可用記憶體多,並且可以使用計算機更多記憶體(目標記憶體還沒達到),那麼MSSQL會動態分配更多記憶體來滿足鎖需求。動態鎖池不能獲取超過buffer pool的60%,否則會報錯。
如果你把該值設定成非0值,那麼MSSQL就失去了動態分配鎖的能力,鎖的數目不能超過該數目,畢竟鎖是要佔用系統資源的(96byte)。
該引數還會影響鎖升級,當該引數為0時,當鎖結構佔用記憶體超過buffer pool的40%時,系統會考慮鎖升級;當設定成非0時,當鎖用到該引數的40%時,系統考慮鎖升級

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-605591/,如需轉載,請註明出處,否則將追究法律責任。

相關文章