跳转到内容
Telemetry
数据库可靠性 SQL查询示例

按总时间影响对数据库查询进行排名

结合调用量和延迟来查找消耗最多应用程序时间的数据库指纹。

入门database_query_events已审核 2026-07-28测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

哪个数据库操作消耗的累积请求时间最多?

罕见的慢查询和中度慢的大容量查询需要不同的优先级。总查询时间估计总体应用程序影响,而 p95 保留尾部行为。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp查询完成时间。
database_systemUtf8数据库系统名称。
operation_nameUtf8SELECT, INSERT, or another controlled operation.
query_fingerprintUtf8没有值的标准化语句形状。
duration_msFloat64应用程序观察到的查询持续时间。
request_idUtf8安全父请求标识符。
DataFusion SQL

复制查询

sql
SELECT
  database_system,
  operation_name,
  query_fingerprint,
  COUNT(*) AS calls,
  SUM(duration_ms) AS total_time_ms,
  approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
  COUNT(DISTINCT request_id) AS affected_requests
FROM database_query_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY database_system, operation_name, query_fingerprint
ORDER BY total_time_ms DESC
LIMIT 20;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

按指纹的总查询时间

项目列表的尾部延迟较低,但消耗的聚合请求时间较多。

database_systemoperation_namequery_fingerprintcallstotal_time_msp95_duration_msaffected_requests
postgresqlSELECTproject-list-v418,4001,288,0001429,200
postgresqlSELECTmonthly-report-v2420924,0004,180410

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Total query time by fingerprint:来自 Rank Database Queries by Total Time Impact 示例结果的合成 total_time_ms 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1总时间将数量和延迟结合到影响排名中。
  2. 2p95 保持低容量病理查询可见。
  3. 3受影响的请求会区分重复调用,例如 N+1 行为。

需要决定的边缘情况

  • 应用程序持续时间包括池和网络效应,除非单独检测。
  • 切勿记录绑定的 SQL 值。
  • 在比较总影响之前,抽样需要加权计数。

推荐仪表板

  • 条形:total_time_ms(指纹识别)
  • 表:调用、p95 和受影响的请求
  • 趋势:按版本划分的总查询时间

警报指导

审查持续的总时间增长;仅当它驱动面向客户的可靠性目标时才页面。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥