Randy Minder Asked: 2017-09-19 05:17:03 +0800 CST2017-09-19 05:17:03 +0800 CST 2017-09-19 05:17:03 +0800 CST LOG_RATE_GOVERNOR 等待统计 772 我注意到我的 Azure SQL 数据库上有这个等待统计信息,我以前从未见过它。我试过用谷歌搜索这个等待统计信息,但无法找到任何关于这是什么的好信息,尽管我看到一些提到它可能与超过数据库的 Azure 性能层集有关。 azure-sql-database 2 个回答 Voted Best Answer AMtwo 2017-09-19T06:41:26+08:002017-09-19T06:41:26+08:00 Azure SQL 数据库的不同服务层受 DTU 限制。Microsoft 保证最低级别的资源,他们将其计算为 DTU。该文档提供了 DTU 的定义(强调我的): 此资源量以数据库事务单元或 DTU 的数量计算,是 CPU、内存、I/O(数据和事务日志 I/O)的混合度量。这些资源之间的比率最初由OLTP 基准工作负载确定,该基准工作负载设计为典型的真实世界 OLTP 工作负载。 如果您看到LOG_RATE_GOVERNOR等待,那么您将遇到性能层对事务日志 I/O 施加的限制。 如果此等待对性能产生负面影响,您将需要增加服务层级,或更新代码以执行更少的写入。如果您有一个 IO 密集型进程,您可以自己限制它,以便在达到 SQL DB 服务层施加的限制之前让事务日志 IO 可用于其他进程。 我写了一篇博客文章,其中我使用DTU 计算器来估计这些性能指标中的每一个如何结合起来影响 DTU 计算。您可能会发现这有助于了解如何将不同类型的负载“混合”到 DTU 限制中。 Alberto Morillo 2017-09-19T07:28:38+08:002017-09-19T07:28:38+08:00 Microsoft 文档状态(此处) LOG_RATE_GOVERNOR 在 DB 等待配额写入日志时发生。当前层的进程似乎正在跨越事务日志速率限制。 尝试识别那些 LOG_RATE_GOVERNOR 等待所涉及的进程和查询。扩展到使用 SSD 存储的高级层可能会解决此问题。 如果您使用本文提供的机制或使用 Query Store ,您还可以识别在执行期间因等待而产生的那些查询。您可能需要重新考虑这些 UPDATES、DELETES、INSERTS 的目标以及它们所属的整个过程。 希望这可以帮助。
Azure SQL 数据库的不同服务层受 DTU 限制。Microsoft 保证最低级别的资源,他们将其计算为 DTU。该文档提供了 DTU 的定义(强调我的):
如果您看到
LOG_RATE_GOVERNOR
等待,那么您将遇到性能层对事务日志 I/O 施加的限制。如果此等待对性能产生负面影响,您将需要增加服务层级,或更新代码以执行更少的写入。如果您有一个 IO 密集型进程,您可以自己限制它,以便在达到 SQL DB 服务层施加的限制之前让事务日志 IO 可用于其他进程。
我写了一篇博客文章,其中我使用DTU 计算器来估计这些性能指标中的每一个如何结合起来影响 DTU 计算。您可能会发现这有助于了解如何将不同类型的负载“混合”到 DTU 限制中。
Microsoft 文档状态(此处) LOG_RATE_GOVERNOR 在 DB 等待配额写入日志时发生。当前层的进程似乎正在跨越事务日志速率限制。
尝试识别那些 LOG_RATE_GOVERNOR 等待所涉及的进程和查询。扩展到使用 SSD 存储的高级层可能会解决此问题。
如果您使用本文提供的机制或使用 Query Store ,您还可以识别在执行期间因等待而产生的那些查询。您可能需要重新考虑这些 UPDATES、DELETES、INSERTS 的目标以及它们所属的整个过程。
希望这可以帮助。