kusto now() 函数 returns 单个查询中的相同值
kusto now() function returns same value in single query
我正在尝试对 kusto 函数的一部分进行检测,以检查不同场景下的执行时间。但是我找不到打印前后时间的方法。
print now();
<query takes few seconds>;
print now();
两个打印语句在输出中返回相同的值。我尝试将 运行 print now()
作为另一个函数的一部分或转换 tostring()
或使用 extend
添加为另一列。但价值保持不变。
在 kusto explorer/azure 数据资源管理器中检测查询性能的方法有哪些?有什么方法可以覆盖默认的 now() 行为吗?
此行为是设计使然,如用于分析查询性能的 documentation, and cannot be overridden. You should use the .show queries 命令中所述。
正如@yifats 在她的回答中提到的,now()
将 return 在同一查询中的所有事件中使用相同的值,这是设计使然。
但是查看查询持续时间并不是进行性能测试的好方法。相反,您应该 运行 两个查询(您想要比较的)互换几次,而不是查看查询的持续时间,转到 Kusto Explorer 中的“查询摘要”选项卡,然后查看“总计CPU 时间”和“扫描数据(估计)”- 数字越低越好。另外,查看“并行度”(并行度越高越好,因为相同的 CPU 时间具有更高的并行度将导致更短的查询持续时间)。
确保对所有查询 运行 使用常量时间-window,例如| where Timestamp between (datetime(2021-09-12 14:00:00) .. 1d)
而不是使用 | where Timestamp > ago(1d)
过滤数据,这是为了 运行 查询完全相同的数据 - 只需确保您的时间 - window 不包括最后几分钟,因为在此时间范围内的摄取可能仍在进行中,因此两个 运行 可能需要扫描不同数量的数据。
最后,确保只查询热缓存中的数据(否则在性能方面您将无法获得一致的结果)。
我正在尝试对 kusto 函数的一部分进行检测,以检查不同场景下的执行时间。但是我找不到打印前后时间的方法。
print now();
<query takes few seconds>;
print now();
两个打印语句在输出中返回相同的值。我尝试将 运行 print now()
作为另一个函数的一部分或转换 tostring()
或使用 extend
添加为另一列。但价值保持不变。
在 kusto explorer/azure 数据资源管理器中检测查询性能的方法有哪些?有什么方法可以覆盖默认的 now() 行为吗?
此行为是设计使然,如用于分析查询性能的 documentation, and cannot be overridden. You should use the .show queries 命令中所述。
正如@yifats 在她的回答中提到的,now()
将 return 在同一查询中的所有事件中使用相同的值,这是设计使然。
但是查看查询持续时间并不是进行性能测试的好方法。相反,您应该 运行 两个查询(您想要比较的)互换几次,而不是查看查询的持续时间,转到 Kusto Explorer 中的“查询摘要”选项卡,然后查看“总计CPU 时间”和“扫描数据(估计)”- 数字越低越好。另外,查看“并行度”(并行度越高越好,因为相同的 CPU 时间具有更高的并行度将导致更短的查询持续时间)。
确保对所有查询 运行 使用常量时间-window,例如| where Timestamp between (datetime(2021-09-12 14:00:00) .. 1d)
而不是使用 | where Timestamp > ago(1d)
过滤数据,这是为了 运行 查询完全相同的数据 - 只需确保您的时间 - window 不包括最后几分钟,因为在此时间范围内的摄取可能仍在进行中,因此两个 运行 可能需要扫描不同数量的数据。
最后,确保只查询热缓存中的数据(否则在性能方面您将无法获得一致的结果)。