Sql-Server

SQL Server 標準版 CPU + Tempdb 配置

  • March 3, 2020

我有 SQL 2014 sp3(標準)根據 8 個 CPU 的以下 CPU 詳細資訊,我們配置了 8 個 Tempdb 數據文件。

根據我的配置,您能否建議相同的 CPU 和 Tempdb 配置。

我面對伺服器的 Top 2 Wait 類型。

  1. ASYNC_NETWORK_IO
  2. SOS_SCHEDULER_YIELD

在此處輸入圖像描述

在此處輸入圖像描述

ASYNC_NETWORK_IO 與 tempdb 無關。ASYNC_NETWORK_IO 是 SQL Server 向客戶端傳輸數據時發生的等待。因此,解決這個問題的唯一方法是升級網路以提供更多頻寬,或者通過升級網路來提供更多頻寬,或者,如果網路飽和,則以任何可能的方式解決飽和問題,或者修改查詢或使用者數量以減少必須傳輸給客戶端的數據。

對於 SOS_SCHEDULER_YIELD,在這裡給出完整的答案有點矯枉過正(恕我直言),我建議您參考sqlskills.com上的 SOS_SCHEDULER_YIELD,開始您的旅程。但是,我可能會說,如果您有一個或多個查詢返回大量數據,導致 ASYNC_NETWORK_IO 等待,那麼相同的查詢很可能也是 SOS_SCHEDULER_YIELD 等待的原因。

在數據倉庫或大數據系統中,這些等待可能是不可避免的,因為查詢返回大量數據是常態。

對於 8 個核心,通常 TempDB 應該有 8 個數據文件,但是,這可能不是您的性能問題的核心。

標準版支持 4 個插槽或 16 個核心中的較小者,您的結果和螢幕截圖顯示 4 個 CPU 對 SQL Server 離線,而您的機器有 8 個插槽。這意味著您實際上只使用了伺服器上 50% 的可用 CPU。

如果這是一台虛擬機,您需要編輯配置以將多個 vCPU 映射到一個插槽,這樣在您擁有 8 個核心之前,您不會超過 4 個插槽的最大值。這將使其他 4 個核心對 SQL Server 線上可見,並可能提高性能。

引用自:https://dba.stackexchange.com/questions/261111