sql-server - 是否所有可用的 DTU 都用于执行查询?

标签 sql-server azure azure-sql-database

我有一个不简单的查询。 当我的数据库有 10 个 DTU 时,执行查询大约需要 17 秒。 我将级别增加到 50 DTU - 现在执行需要 3-4 秒。 该比率与文档相对应 - 更多 DTU = 工作速度更快。

但是!

1 在我的电脑上,我可以在 1 秒内执行查询。

2 在门户统计中,我发现我仅使用 12 个 DTU(最大 DTU 百分比 = 25% )。 在 sys.dm_db_resource_stats 中,我看到 MAX(avg_cpu_percent) 约为 25%,其他参数较少。

所以问题是 - 为什么我的查询需要 3-4 秒才能执行? 1秒内即可执行。而且服务器没有使用我所有的DTU。 如何让服务器使用所有可用资源更快地执行查询?

最佳答案

DTU 是 CPU、内存、数据 I/O 和事务日志 I/O 的综合测量。

这意味着达到 DTU 瓶颈可能意味着其中任何一个。

这个问题可以帮助您衡量不同的方面:Azure SQL Database "DTU percentage" metric

以下是有关 DTU 的更多信息:https://learn.microsoft.com/en-us/azure/sql-database/sql-database-what-is-a-dtu

关于sql-server - 是否所有可用的 DTU 都用于执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42833515/

相关文章:

sql-server - SQL 到 LINQ 表达式

c# - 读取数组或列表中的 SQL Server 列

azure - 我可以向仅限应用程序的应用程序授予有限的邮箱访问权限吗?

sql-server - 在链接服务器上使用身份插入

sql-server - 使用 OpenRowSet 导入 .CSV 文件时将科学计数法转换为 float

sql - 分页结果集中的选择子查询和左外连接哪个更快

java - 从后端系统读取Azure IoT Hub消息

.net - 如何从 kubernetes 部署配置文件中的 helm 获取运行时设置以覆盖 asp.net 中的 appsettings

powershell - 如何删除azure sql db的长期保留并删除保管库

sql - 此版本的 SQL Server 不支持对数据库和/或服务器名称的引用