在sys.dm_db_resource_stats DMV中有两列名为avg_data_io_percent和avg_log_write_percent。这些是用于计算DTU的DMV中的三列中的两列。我不清楚的是两者之间的确切差异。当然,avg_log_write_percent是对数据库进行写入的度量。什么不是很清楚avg_data_io代表什么。这不包括写入(以及读取)吗?
答案 0 :(得分:1)
<强>平均数据-IO 强>:
表示任何查询的读取和写入,这不包括日志写入
<强>平均日志-10:强>
表示写入磁盘的日志。假设您有一个DML语句,如下所示
update t
set col1=4
SQLSERVER将此操作写入日志文件以重放它以进行回滚。此写入百分比来自Avg-log-io
我能够通过对我的基本层进行简单测试来重新编写log-io。在一个包含100万行爆炸日志的表上运行以下查询,但在此期间数据io较少,这可能是由于所有所需数据在内存中
update orders
set filler='z'
更新后登录:
此外,如果你想调整运行缓慢的查询,我遵循的一个简单规则是观察cpuio,dataio,logio,memory ..如果这四个中的任何一个平均在一段时间内持续超过90 ..我会尝试获取这些查询并对其进行调整..
例如,如果CPU在一段时间内平均超过90,那么我会得到导致高cpu并调整它们的查询您可能也会发现这篇文章很有趣,但请注意这些是近似值:https://sqlperformance.com/2017/03/azure/what-the-heck-is-a-dtu