Sql-Server

在 Azure SQL 中使用 DTU 時如何確定 MAXDOP 設置

  • March 9, 2022

當您知道您可以使用的核心數量時,我以前有為本地 OLTP 和 OLAP 伺服器設置 MAXDOP 設置的經驗。例如,如果我知道我有 16 個可供我使用,我會為我的 OLTP 系統將我的 MAXDOP 設置為 2 或 4。

我剛加入一個項目,注意到核心生產數據庫設置為 1 的 MAXDOP,禁止任何並行操作。

它是一個專用伺服器(因此沒有彈性池)Premium P11 伺服器,因此 DTU 抽象了 CPU 的確切數量和記憶體容量。無法判斷您正在處理多少個核心,是否有合理的起始配置?發現將本地最佳實踐移植到 Azure SQL 有點棘手。

測試伺服器是具有共享彈性池的不同配置,因此也沒有簡單的方法來測試特定的執行計劃(尤其是所有內容都是通過實體框架 ORM 編寫的)

DTU 是CPU、記憶體、數據 I/O 和事務日誌 I/O 的混合度量……。這意味著沒有明確的衡量標準來確定 x DTU = x CPU、X 記憶體等。

因為,您擁有 Premium P11 層 - 這意味著您擁有 1750 個 DTU。基於這篇博文 - Andy Mallon,下面是 CPU 到 DTU 到服務層的映射:

+--------------+------+---------------+ | Number Cores | DTUs | Service Tier | +--------------+------+---------------+ | 1 | 100 | Standard – S3 | | 2-4 | 500 | Premium – P4 | | 5-8 | 1000 | Premium – P6 | | 9-13 | 1750 | Premium – P11 | | 14-16 | 4000 | Premium – P15 | +--------------+------+---------------+

您應該使用Query Performance Insight for Azure SQL 數據庫來查看和調整數據庫工作負載設置。由於您將 db 範圍配置設置為非預設值(0 是預設值) - 設置為 1,因此您需要查看它並可能更改它,以便您可以利用所有核心。

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