HOW TO:判斷正確的 SQL Server 組態設定

文章翻譯 文章翻譯
文章編號: 319942 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何使用下列組態設定值,及其相關考慮事項:
  • 關聯遮罩
  • 精簡集區
  • 最大非同步 IO
  • 最大工作者執行緒
  • 記憶體
  • 優先順序增加
  • 設定工作集大小
只要對 SQL Server 進行一些組態方面的調整,就能讓 SQL Server 獲得相當高的效能。您可以使用設計良好的應用程式和資料庫,得到相當高的效能,而不需要對組態進行廣泛的調整作業。如需有關如何解決各種 SQL Server 效能問題的資訊,請參閱本文中的〈參考〉一節。

處理效能方面的問題時,透過組態調整方式,往往只能得到少許的效能改善 (除非您的系統之前並未做適當的設定)。在 SQL Server 7.0 和以後版本中,SQL Server 會使用自動組態調整,因此需要修改組態設定的機率相當低 (尤其是進階的設定值)。一般而言,如果沒有充足的理由,並且未經過仔細的精密測試,以確認修改組態的必要性時,請勿變更 SQL Server 的組態。在進行組態變更之前,您必須先建立一個基準,如此才能測知變更組態之後所帶來的好處。

如果 SQL Server 的設定不正確,有些設定值可能會導致伺服器不穩定,或是使 SQL Server 產生不正常的行為。根據我們多年提供不同環境的支援服務經驗而言,使用非預設的組態設定值可能會導致程度不等的負面效應。

如果您確定要變更組態,則必須針對組態變更之前和之後執行詳細、有條理的效能測試,如此才能得知改善的程度。

在我們提供支援的真實案例中,SQL Server 7.0 (含) 以後版本均不需要進行任何手動的組態調整,就可以獲得非常高的效能。

在 SQL Server 7.0 (含) 以後版本中,請勿變更 [使用者連線][鎖定],以及 [Open Objects] ,因為依預設 SQL Server 可以動態調整這些設定值。

關聯遮罩

{關聯遮罩] 設定值表示執行緒繫結至某特定 CPU 的穩定程度。依預設,Microsoft Windows NT 和 Microsoft Windows 2000 會使用「軟性的」(soft) 關聯,這種方式會在執行緒最後一次執行時,嘗試重新排定此執行緒在 CPU 上的執行時間。不過如果無法做到,此執行序就會在不同的 CPU 上執行。

在實務上,將 [關聯遮罩] 設定值變更為預設值以外的設定值,對效能並不會有太大的幫助,而且還常會使效能降低。

[關聯遮罩] 會將 SQL Server 限制在一個可用 CPU 的子集,並讓其他會與此服務彼此競爭資源的服務擁有更好的 CPU 存取權。通常您並不需要這個功能,因為 SQL Server 是以一般優先順序而執行的。Windows NT 或 Windows 2000 的執行緒排程器會動態調整執行緒的優先順序,使所有會競爭資源的執行緒都有相同的機會,使用所有可用的 CPU。

除非發生非常不尋常的狀況,否則請勿調整 [關聯遮罩] 的組態。如果您還是要調整關聯遮罩,請在變更前後進行詳細、有條理的測試作業,以確認究竟是否需要變更設定,及其改善程度。

精簡集區

依預設,SQL Server 會在每個作用中的 SPID 或使用者處理程序中,使用一個執行緒。這些執行緒會在集區組態內作業,讓執行緒的數量維持在可管理的範圍內。「精簡集區」(有時候也稱為「光纖模式」) 此進階組態選項會使用 Windows NT 的「光纖」支援功能,在單一執行緒中處理數個執行內容。

依據實際經驗,除了極少數的狀況之外,您並不需要使用「光纖」模式。 即使您遇到以下所有狀況,精簡集區派得上用場的機會仍然很低。您必須透過詳細的控制測試,判斷此設定是否有效。
  • 大型的多重處理器伺服器正在使用中。
  • 所有伺服器均以最大容量或接近最大容量執行。
  • 發生大量的工作內容切換作業 (超過每秒 20,000 個)。
如果要查詢工作內容切換作業,請使用「效能監視器」,然後選取計數器執行緒,再選取 Context switches/sec"物件,並且選取擷取所有 SQL Server 執行個體。 如果您以「光纖」模式執行伺服器,則系統將無法支援 SQL Server 2000 中的 SQL Mail。 如需詳細資訊,請按一下下列的文件編號,檢視 Microsoft Knowledge Base 中的文件:
308604 PRB:SQLMail Is Not Supported When You Run the Server in Fiber Mode
303120 FIX:ConnectionWrite Error When You Use Lightweight Pooling

最大非同步 IO

SQL Server 7.0[最大非同步 IO] 組態設定是 SQL Server 7.0 中的組態設定。如果您擁有快速的 RAID 系統,並且有辦法測試變更設定後帶來多少好處,就可以變更此設定值。如果您還沒有一個可以評估結果的基準,請勿變更此設定值。監控磁碟的活動,並查看磁碟佇列的相關問題。如需詳細資訊,請參閱下列的《SQL Server 線上叢書》主題:
  • 最大非同步 IO 選項
  • 監控磁碟活動
  • 找出瓶頸
SQL Server 2000:在 SQL Server 2000 中,您無法變更 [最大非同步 IO] 組態設定值。SQL Server 2000 會自動調整這個設定值。

最大工作者執行緒

依預設, [最大工作者執行緒] 的設定值為 255,此設定值允許建立最多 255 個工作者執行緒。通常只要使用預設設定值 255 即可。 這並不表示您只能建立 255 個使用者連線。系統中可以有數千個使用者連線 (這些使用者連線會多路傳輸到 255 個工作者執行緒),而通常使用者們並不會感覺到任何延遲。在這個狀況下,同一時間內只能執行 255 個查詢作業,並且會多路傳輸到可用 CPU 的數量,所以不管設定的工作者執行序數量是多少,只有在這個時候才會察覺到其並行處理的本質。

如果您將工作者執行緒的值設為大於預設值,則會對排程和資源方面造成的效能負荷,其結果幾乎是一定會產生不良的後果,並降低系統效能。只有在非常少見的狀況下,以及經過詳細、有條理的測試後顯示有必要這麼做時,才可以增加此設定值。

記憶體


如需有關設定記憶體的詳細資訊,請參閱《SQL Server 線上叢書》中的〈Optimizing Server Performance Using Memory Configuration Options〉主題。

如需有關設定叢集 SQL Server 的記憶體的詳細資訊,請參閱《SQL Server 線上叢書》中的〈Creating a Failover Cluster〉主題中的〈Usage Considerations〉。

如需詳細資訊,請按一下下列的文件編號,檢視「Microsoft 知識庫」中的文件:
274750 HOW TO:在 SQL Server 上設定 2 GB 以上的記憶體
224818 Simple Memory Tuning is Required if Both SQL Server 7.0 and Exchange 5.5 Service Pack 2 Are Installed on BackOffice Small Business Server 4.5
316749 PRB:There May Not Be Enough Virtual Memory with Large Number of Databases

優先順序增加

依預設, [優先順序增加] 的設定值為 0,此時 SQL Server 不論是在單一處理器或對稱多重處理器 (SMP) 的電腦上執行時,都是以一般優先順序而執行。如果您將 [優先順序增加] 設定為 1,則 SQL Server 處理程序就會以高優先順序而執行。但這個設定值並不會使 SQL Server 處理程序以最高的作業系統優先順序執行。

就實際的支援經驗來說,您並不需要為了得到良好的效能,而使用 [優先順序增加] 。如果使用了 [優先順序增加],反而可能在某些狀況下對伺服器的運作產生干擾,因此除了少數狀況外,請不要使用這個設定值。例如,「Microsoft 技術支援部」 在調查效能問題時,才有可能會使用 [優先順序增加]

重要:請勿在執行 SQL Server 的伺服器叢集中使用 [優先順序增加]

設定工作集大小

請勿將 [設定工作集大小] 變更為預設值以外的設定值。使用預設值 0 時,Windows NT 或 Windows 2000 虛擬記憶體管理程式可以判斷 SQL Server 的工作集大小。在您安裝 SQL Server 時,安裝程式會自動指引 Windows NT 或 Windows 2000,使其將網路應用程式的效能最佳化。因此,Windows NT 或 Windows 2000 的虛擬記憶體管理程式會對工作集進行少許的調整,如此只會對 SQL Server 執行個體的工作集產生最低的影響。

變更這個設定值基本上對效能並沒有什麼好處。就實際的支援案例來說,變更這個設定值是弊多於利。

如果您變更了 [設定工作集大小],也可能成為 SQL Server 的 844 或 845 錯誤訊息的原因之一。如需有關錯誤訊息 844 和 845 的常見原因的詳細資訊,請參閱本文〈參考〉一節。

?考

如需詳細資訊,請按一下下列的文件編號,檢視「Microsoft 知識庫」中的文件:
310834 PRB:Common Causes of Error Message 844 or Error Message 845 (Buffer Latch Time Out Errors)
298475 INF:成功排除 SQL Server 應用程式效能問題所需的資訊
243589 資訊:在 SQL Server 7.0 或更新版本上的執行緩慢查詢疑難排解
243588 資訊: 特殊查詢效能的疑難排解
224587 資訊:SQL Server 應用程式效能疑難排解
166967 INF:正確的 SQL Server 組態設定
254321 INF:叢集 SQL Server 謹記與切忌事項以及基本警告
297864 INF:Performance Considerations for Upgrade from SQL Server 6.5

屬性

文章編號: 319942 - 上次校閱: 2011年5月10日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
關鍵字:?
kbsqldeveloper kbhowtomaster KB319942
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com