Sql-Server-2016

MaxDOP 限制 SQL Server 2016 標準

  • November 13, 2020

我有 SQL 2016 標準版實例,在 2 個節點中有 40 個邏輯處理器。(2 個物理處理器 x 20 個核心 = 總共 40 個核心)

根據SQL Server 中“最大並行度”配置選項的建議和指南,我想將 MaxDOP 設置為 8

每個 NUMA 節點超過 8 個邏輯處理器 將 MAXDOP 保持在 8

但是每個最大並行度選項我只能設置為 4,但它看起來適用於 2008 年,我在 2016 年

並行度設置的最大值由 SQL Server 的版本控制,

實際我改成8,SQL沒有報錯,值一直是8。我把它改回0,繼續研究。

我擔心的是,如果我設置為 8,我可能真的將其設置為 4。在我進行任何更改之前,我想知道 8 = 8。我已經搜尋並沒有發現任何其他說明 MaxDOP 在新版本 SQL 中的限制是基於版本的。

SQL 2016+ 版本中的 MaxDOP 限制是否基於?

EDIT Soft NUMA 目前在啟動時設置為 4 個節點。仍在學習,但如果我理解正確,我認為這意味著具有 10 個邏輯處理器的單個節點可以應用於任何一條語句(查詢),因此將 MaxDOP 設置為 8 以保留兩個處理器可能不值得付出努力,沒有一些現有的問題需要解決。

EDIT2節點不限制並行性

將執行緒放在多個節點上;這是 SQL Server 做出的最常見的決定。該決定根據需要將工作人員分佈在多個節點上。除了起始位置基於保存的、下一個節點、全域列舉器之外,該設計與 full 類似。 資源

SQL Server 2016 Enterprise Edition 允許您將 maxdop 設置為最高 64 的任何值。但是,SQL Server 2016 Standard Edition 對並行度有限制,根據此文件頁面

  • 不支持分區表並行性。
  • 標準版不支持 NUMA,不支持大頁面記憶體和緩衝區數組分配
  • 對於標準版,索引建構的程序並行度 (DOP) 限制為 2 DOP
  • 僅限於 4 個插槽或 24 個核心中的較小者

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