最佳化SQL Server 2000的設定
SQL Server已經為了最佳化自己的效能而進行了良好的配置,比今天市場其他的關係型資料庫都要好得多。然而,你仍然有幾項設定需要進行修改,以便你的資料庫每分鐘可以處理更多的事務(TPM)。本篇文章的目的就是討論這些設定。我們忽略那些可以通過硬體設定或者表或者索引設計提高的效能,因為這些內容在本篇文章範圍之外。
破碎頁面檢測
在我們開始討論區伺服器配置開關之前,讓我們快速探索一下你的模型資料庫??或者說用作構建新的資料庫的基礎的模板。預設情況下,你可以在資料庫中建立預存程序、函數等類似的東西,隨後他們將會被加入新建立的資料庫中。
要最佳化效能,你也許想要關閉模型資料庫中的破碎頁面檢測。當一個頁面被成功寫入磁碟的時候,破碎頁面檢測進行識別。如果啟用了的話,你可以看到每個寫操作對效能產生的每個細小的影響。大多數現代的磁碟陣列都有板上電池,使得陣列可以在突然斷電的情況下完成所有的寫操作??引起破碎頁面的最頻繁原因。
以下的步驟可以接受如何關閉破碎頁面檢測:
exec sp_dboption ’model’, ’torn page detection’, ’false’
這篇基礎知識資源可以為你提供更多有關這個設定的資訊。
伺服器配置
大多數的配置是通過系統預存程序sp_configure完成的。要顯示伺服器的全部設定列表以便定製,你可以輸入如下命令:
sp_configure ’show advanced options’, 1
GO
RECONFIGURE WITH OVERRIDE
你可以配置的選項的數量根據你的SQL Server的版本、服務包,以及位元版本(64位的SQL Server比32位的選項要多)而定。我將直接討論最能影響SQL Server效能最佳化的選項。
Affinity mask: Affinity mask讓你可以控制SQL Server使用哪個處理器。對於大多數情況,你不應該接觸這個設定,讓作業系統控制處理器關係。然而,你也許想要用這個選項來將某個處理器專門用於另一個進程(例如,MSSearch 或者 SQL Server磁碟 IO ,以及 SQL Server的平衡)。參考基礎知識資源擷取更多有關這個設定的資訊。
Awe enabled: Awe的啟動可以讓SQL Server Enterprise版本運行在Windows 2000以及以上進階伺服器上,或者Windows 2003 Enterprise以及以上的版本使用超過4GB的記憶體。如果你的伺服器符合這些條件的話,就啟用這個設定吧。
並行成本極限:當查詢需要進行平行處理的時候,並行的成本極限就定下來了。預設情況是五秒鐘。將這個數值改為稍低的數值,俄可以讓更多個查詢獲得平行處理,但是這也會引起CPU瓶頸。這個設定只有在多個處理器的機器上才會起作用。
填滿因數:填滿因數設定了在建立聚簇索引的時候用來自動填滿的因子。在頻繁插入的表中,將數值從預設的Array0%設定為較低的數值,你會獲得收益。
輕量級緩衝池:這個設定啟動了光纖模式。使用這個選項在CPU利用率很高的8路及其以上的伺服器上。這可以讓光纖同時為每個線程提供服務,同時在預設情況下運行在每個處理器上。某些任務可以從這些光纖中獲得優勢。
並行的最大程度:當伺服器可以使用並行或者不能使用並行,或者是當某個數量的處理器可以用於並行操作的時候,這個設定就確定了。並行就是多個處理器上發生多個處理。例如,查詢的並行操作可以在不同的處理器上同時處理。
伺服器最大記憶體(MB):如果你在SQL Server上運行了其他的處理,並且有足夠的記憶體,那麼你有可能想要留出512MB的記憶體給作業系統和這些進程。例如,你可以在MSSearch或者在本地運行大量的代理的情況下將其設定為512。
最大背景工作執行緒:最大背景工作執行緒設定與ADO.net中的串連池有些類似。通過這個設定,任何超過限制(255個使用者)的使用者串連都可以線上程池中等待,直到為某個串連服務的線程得到釋放,就好像是ADO.net中的串連與串連池共用。如果你有很大量的串連,並且大量的記憶體,那麼你就可以提高這個數值。
網路包尺寸(B):這個設定控制了網路中傳輸到你的用戶端的包的尺寸。在有損耗的網路中(例如電話線),你可能想要將這個參數設定為比較低的數值,墨人數值是40Array6。在串連良好的網路中,你可以提高這個設定,特別是涉及BLOB的大型批處理操作。
優先推進:這個設定為SQL Server提供了處理器的推動。在工作管理員中,點擊進程標籤,定位SQL Server的位置,然後右擊它。選擇“設定優先權別”。注意,SQL Server應該運行在正常的優先順序別上。輸入如下命令:
Sp_configure ’priority boost’, 1
Reconfigure with override
然後重新啟動你的SQL Server。在工作管理員中察看SQL Server現在運行在什麼優先順序別上。它應該是在高優先順序上。SQL Server應該比其他的使用者進程運行優先順序別要高。在專用於SQL Server的伺服器上使用這個設定。
總結
本篇討論了最常見的SQL Server最佳化設定。在做出改變之前和之後分別在測試環境中進行基準確定是非常重要的,可以據此來評估在典型的負載下,改變對你的系統的影響。