具有高效能工作負載的 SQL Server 建議更新和組態選項
本文包含 SQL Server 2012 和更新版本可用的效能改進和組態選項清單。
原始產品版本: SQL Server 2014、SQL Server 2012
原始 KB 編號: 2964518
套用建議的更新並改善 SQL Server 2014 和 SQL Server 2012 的效能
本文說明透過各種產品更新和組態選項,適用於 SQL Server 2014 和 SQL Server 2012 版本的效能改進和變更。 您可以考慮套用這些更新,以改善 SQL Server 實例的效能。 您看到的改進程度將取決於各種因素,包括工作負載模式、爭用點、處理器配置(處理器群組數目、套接字、NUMA 節點、NUMA 節點中的核心),以及系統中存在的記憶體數量。 SQL Server 支援小組使用這些更新和組態變更,為使用具有數個 NUMA 節點和大量處理器的硬體系統的客戶工作負載達到合理的效能提升。 支援小組會在未來繼續以其他更新更新本文。
高端系統 高端系統通常具有多個套接字、每個套接字八個核心或更多個核心,以及一半 TB 或更多記憶體。
注意
在 SQL Server 2016 和更新版本中,本文所述的許多追蹤旗標都是預設行為,您不需要在這些版本中啟用它們。
建議分成三個數據表,如下所示:
資料表 1。 高端系統的重要更新和追蹤旗標
在確定 SQL Server 實例符合適用版本和組建範圍數據行中的需求之後,請檢閱下表,並在追蹤旗標數據行中啟用追蹤旗標。
注意
適用的版本和組建指出引進變更或追蹤旗標的特定更新。 如果未指定 CU,則會包含 SP 中的所有 CU。
不適用的版本和組建指出變更或追蹤旗標成為預設行為的特定更新。 因此,只要套用該更新就足以獲得好處。
重要
當您在 Always On 環境中啟用追蹤旗標的修正時,請注意,您必須在所有屬於可用性群組的複本上啟用修正和追蹤旗標。
要考慮的案例和徵兆 | 追蹤旗標 | 適用的版本和組建範圍 | 不適用的版本和組建範圍 | 知識庫文章/部落格連結,提供更多詳細數據 |
---|---|---|---|---|
|
T8048 |
|
|
|
|
T8079 | SQL Server 2014 SP2 至目前的SP/CU |
|
|
|
T9024 | SQL Server 2012 Service Pack 1 至 SP2 SQL Server 2014 RTM 的累積更新套件 3 |
|
修正:SQL Server 2012 或 SQL Server 2014 實例上的高「記錄寫入等候」計數器值 |
您的 SQL Server 實例因連線共用而處理數千個連線重設。 | T1236 | SQL Server 2012 Service Pack 1 至 SP2 SQL Server 2014 累積更新套件 9 |
|
|
|
T1118 |
|
|
tempdb 資料庫的並行增強功能 注意 啟用追蹤旗標,並新增tempdb資料庫的多個資料檔。 |
|
T1117 |
|
|
請參閱在 SQL Server tempdb 資料庫中降低配置競爭的建議。 |
大量 SOS_CACHESTORE 同步鎖定爭用或您的計劃經常在臨機操作查詢工作負載上收回。 |
T174 |
|
無 |
|
|
T8032 |
|
無 |
|
由於數據表中的大量數據列,因此不會經常更新現有的統計數據。 | T2371 |
|
無 | |
|
T7471 | SQL Server 2014 SP1 CU6 至目前的 SP/CU | 無 | 使用 SQL 2014 和 SQL 2016 提升更新統計數據效能 |
CHECKDB 命令對於大型資料庫需要很長的時間。 |
|
|
無 | |
CHECKDB 命令對於大型資料庫需要很長的時間。 | T2566 |
|
無 |
|
執行需要長時間編譯時間的並行數據倉儲查詢,以等候 RESOURCE_SEMAPHORE_QUERY_COMPILE 。 |
T6498 | SQL Server 2014 至 SP1 的累積更新套件 6 |
|
|
您針對特定查詢效能問題進行疑難解答時,預設會停用優化器修正。 | T4199 |
|
無 | |
使用具有空間數據類型的查詢作業,您會遇到效能緩慢的問題。 |
|
|
|
|
|
T8075 |
|
|
修正:當 SQL Server 進程的虛擬位址空間在 SQL Server 中很低時,記憶體不足錯誤 |
|
T3449 |
|
|
修正:在具有大量記憶體的系統上建立 SQL Server 資料庫所需的時間超過預期 |
表 2. 改善 SQL Server 實例效能的一般考慮和最佳做法
檢閱知識庫文章/書籍在線資源數據行中的內容,並考慮實作建議動作數據行中的指引。
知識庫文章/在線叢書資源 | 建議動作 |
---|---|
設定 max degree of parallelism 伺服器組態選項 | 使用sp_configure預存程式,根據知識庫文章,對 SQL Server 實例的平行處理原則伺服器組態選項進行組態變更。 |
SQL Server 版本的計算容量限制 | Enterprise Edition 含伺服器 + 用戶端存取授權 (CAL) 授權限制為每個 SQL Server 實例 20 個核心。 核心伺服器授權模式之下沒有任何限制。 請考慮將 SQL Server 版本升級至適當的 SKU,以利用所有硬體資源。 |
使用「平衡」電源計劃時,Windows Server 的效能變慢 | 檢閱本文,並與您的 Windows 系統管理員合作,實作本文一節中所述的其中一個解決方案。 |
手動將 NUMA 節點指派給 K 群組。 | |
針對臨機操作工作負載進行優化 FORCED PARAMETERIZATION | 計劃快取中的項目會因為其他快取或記憶體 Clerk 中的成長而收回。 當快取達到其項目數目上限時,您也可能遇到計劃快取收回。 除了上述所討論的追蹤旗標 8032 之外,請考慮 針對臨機操作工作負載 伺服器選項以及 FORCED PARAMETERIZATION 資料庫選項進行優化。 |
如何在 SQL Server 記憶體組態中減少緩衝池記憶體的分頁,以及 SQL Server 2012 和更新版本中的大小考慮 | 將 [啟用記憶體中的鎖定頁面] 選項 (Windows) 用戶權力指派給 SQL 服務啟動帳戶。 請參閱 如何在 SQL Server 2012 中啟用「鎖定的頁面」功能。 將伺服器記憶體上限設定為大約90%的總物理記憶體。 請確定 [ 伺服器記憶體組態選項 ] 設定只會佔設定為使用同質遮罩設定之節點的記憶體。 |
SQL Server 和大型頁面說明...在高效能工作負載中執行時,調整 SQL Server 的選項 | 如果您有具有大量記憶體的伺服器,特別是分析或數據倉儲工作負載,請考慮啟用 TF 834。 請記住, 如果您使用數據行存放區索引,不建議使用 TF 834。 |
sp_configure預存程式中可用的「存取檢查快取貯體計數」和「存取檢查快取配額」選項的描述 | 使用 存取檢查快取伺服器組態選項 ,根據知識庫文章中的建議設定這些值。 高端系統的建議值如下: 「存取檢查快取貯體計數」:256 「存取檢查快取配額」:1024 |
ALTER WORKLOAD GROUP Memory grant query hints | 如果您有許多耗用大量記憶體授與的查詢,請將資源管理員設定中預設工作負載群組的預設工作負載群組從預設 25% 縮減 request_max_memory_grant_percent 為較低的值。 SQL Server 中有新的查詢記憶體授與選項可用 (min_grant_percent 和 max_grant_percent ) |
立即檔案初始化 | 請與您的 Windows 系統管理員合作,根據《在線叢書》主題中的資訊,授與 SQL Server 服務帳戶「執行磁碟區維護工作」用戶權力。 |
SQL Server 中「自動成長」和「自動成長」設定的考慮 | 檢查您資料庫的目前設定,並確定它們已根據知識庫文章中的建議進行設定。 |
資料庫檢查點 (SQL Server) | 請考慮在使用者資料庫上啟用間接檢查點,以優化 SQL Server 2012 和 2014 中的 I/O 行為。 |
修正:當磁碟在 SQL Server AG 和 Logshipping 環境中有不同扇區大小的主要和次要復本記錄檔時,同步處理速度變慢 | 如果您有可用性群組,其中主要復本上的事務歷史記錄位於具有 512 位元組扇區大小的磁碟上,而次要復本的事務歷史記錄位於具有 4K 扇區大小的磁碟驅動器上,您可能會發生同步處理速度緩慢的問題。 在這些情況下,啟用 TF 1800 應該更正問題。 如需詳細資訊,請參閱 追蹤旗標 1800。 |
如果您的 SQL Server 尚未系結 CPU,且工作負載的 1.5% 至 2% 額外負荷是微不足道的,建議您啟用 TF 7412 作為啟動追蹤旗標。 此旗標可在 SQL Server 2014 SP2 或更新版本中啟用輕量型分析,讓您能夠在生產環境中執行實時查詢疑難解答。 |
表 3. 累積更新中包含的效能修正
檢閱 [徵兆] 數據行中的描述,並在適用環境中的 [必要更新] 數據行中套用必要的更新。 您可以檢閱知識庫文章,以取得有關個別問題的詳細資訊。 這些建議不需要您啟用其他追蹤旗標作為啟動參數。 只要套用包含這些修正的最新累積更新或 Service Pack 就足以獲得好處。
注意
必要更新數據行中的 CU 名稱會提供第一個可解決此問題的 SQL Server 累積更新。 累積更新包含所有 Hotfix 和先前 SQL Server 更新版本隨附的所有更新。 因此,建議您安裝 最新的累積更新 ,以解決問題。
重要注意
如果表 1 中的所有條件都適用於您:
- SQL Server 2014 的指引:針對 RTM 套用至少 SQL Server 2014 累積更新 1,並將 “-T8048 -T9024 -T1236 -T1117 -T1118” 新增至 SQL Server 啟動參數列表。
- SQL Server 2012 的指引:將 SP2 套用至 SQL Server 啟動參數列表,並將 “-T8048 -T9024 -T1236 -T1117 -T1118” 新增至 SQL Server 啟動參數清單。
如需如何使用追蹤旗標的一般資訊,請參閱 《SQL Server 在線叢書》中的 DBCC TRACEON - 追蹤旗標 (Transact-SQL) 主題。
您可以在檢視 SQL Server Management Studio 中的 SQL Server 錯誤記錄檔中,找到處理器數目、NUMA 組態等等的詳細資訊。
若要尋找 SQL Server 的版本,請檢查下列各項:
參考資料
SQL Server 重要更新的 SQL Server 社群資源
適用於
- SQL Server 2014 Enterprise
- SQL Server 2014 Enterprise Core
- SQL Server 2014 商業智慧
- SQL Server 2014 開發人員
- SQL Server 2014 Standard
- SQL Server 2014 Web
- SQL Server 2014 Express
- SQL Server 2012 商業智慧
- SQL Server 2012 開發人員
- SQL Server 2012 Enterprise
- SQL Server 2012 Standard
- SQL Server 2012 Web
- SQL Server 2012 Enterprise Core