在超過 64 個 CPU 之電腦上執行 SQL Server 的最佳作法
本主題提供在超過 64 個 CPU 的電腦上執行 SQL Server 執行個體時的最佳作法資訊。
指派硬體執行緒與 CPU
請勿使用 affinity mask 和 affinity64 mask 伺服器組態選項來繫結處理器和特定的執行緒。 下列選項限制為 64 個 CPU。 請改用 ALTER SERVER CONFIGURATION (Transact-SQL)。
管理交易記錄檔大小
請勿仰賴自動成長來增加交易記錄檔的大小。 增加交易記錄必須是序列處理序。 擴充記錄可避免在記錄擴充完成之前繼續進行交易寫入作業。 但是,您可以將檔案大小設定為夠大的值來支援環境中的典型工作負載,藉此為記錄檔預先配置空間。
設定平行處理原則的最大程度以進行索引作業
在擁有許多 CPU 的電腦上,將資料庫的復原模式暫時設定為大量記錄或簡單復原模式,可以提升索引作業 (例如,建立或重建索引) 的效能。 這些索引作業可以產生大量的記錄活動,而且記錄爭用可能會影響 SQL Server 所做的平行處理原則的最佳程度 (DOP) 選擇。
此外,請考慮為這些作業調整平行處理原則的最大程度 (MAXDOP) 設定。 以下指導方針是以內部測試為基礎,而且是一般建議。 您應該嘗試幾個不同的 MAXDOP 設定來決定適合您環境的最佳設定。
若是完整復原模式,請將平行處理原則的最大程度選項的值限制為 8 以下。
若是大量記錄模式或簡單復原模式,則應該考慮將平行處理原則的最大程度選項的值設定為 8 以上的值。
若是已設定 NUMA 的伺服器,平行處理原則的最大程度就不應該超過指派給每個 NUMA 節點的 CPU 數目。 這是因為查詢很可能會使用 1 NUMA 節點的本機記憶體,以改善記憶體存取時間。
若是已啟用超執行緒,而且在 2009 年或之前製造的伺服器,MAXDOP 值就不應該超過實體處理器的數目。
如需有關max degree of parallelism選項的詳細資訊,請參閱<平行程度>。
設定最大的工作者執行緒數目
請一律將工作者執行緒的數目上限設定為大於平行處理原則的最大程度的設定。 工作者執行緒的數目一律至少必須設定為目前存在伺服器上之 CPU 數目的七倍。 如需詳細資訊,請參閱<max worker threads 選項>。
使用 SQL 追蹤和 SQL Server Profiler
我們建議您不要在實際執行環境中使用 SQL 追蹤和 SQL Server Profiler。 執行這些工具的負擔也會隨著 CPU 數目增加而提高。 如果您必須在實際執行環境中使用 SQL 追蹤,請將追蹤事件的數目限制為最小值。 請仔細地分析和測試低於負載的每個追蹤事件,並且避免使用大幅影響效能的事件組合。
設定 tempdb 資料檔案的數目
通常,tempdb 資料檔案的數目應該與 CPU 數目相符。 不過,只要仔細地考量 tempdb 的並行需求,您就可以減少資料庫管理作業。 例如,如果系統具有 64 個 CPU 而且通常只有 32 個查詢使用 tempdb,則將 tempdb 檔案的數目增加至 64 並不會改善效能。 如需詳細資訊,請參閱<最佳化 tempdb 效能>。
可以使用超過 64 個 CPU 的 SQL Server 元件
下表將列出 SQL Server 元件並指出它們是否能使用超過 64 個 CPU。
處理序名稱 |
可執行的程式 |
使用超過 64 個 CPU |
---|---|---|
SQL Server Database Engine |
Sqlserver.exe |
是 |
Reporting Services |
Rs.exe |
否 |
Analysis Services |
As.exe |
否 |
Integration Services |
Is.exe |
否 |
Service Broker |
Sb.exe |
否 |
全文檢索搜尋 |
Fts.exe |
否 |
SQL Server Agent |
Sqlagent.exe |
否 |
SQL Server Management Studio |
Ssms.exe |
否 |
SQL Server 安裝程式 |
Setup.exe |
否 |