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

测量长时间运行的数据库事务

查找具有长尾、回滚和开放持续时间过长的应用程序事务类。

中级database_transaction_events已审核 2026-07-28测试用 阿帕奇 DataFusion 45.2.0

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

问题已回答

哪些应用程序事务类别保持开放时间最长?

长事务会占用资源并会加剧锁争用。即使仍然需要服务器端诊断,应用程序事件也可以识别所属工作流并发布。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp交易终端事件时间。
serviceUtf8拥有应用服务。
transaction_nameUtf8稳定的逻辑事务类。
releaseUtf8应用发布。
duration_msFloat64从开始到结束的交易持续时间。
outcomeUtf8已承诺,rolled_back 或 timed_out。
DataFusion SQL

复制查询

sql
SELECT
  service,
  transaction_name,
  release,
  COUNT(*) AS transactions,
  approx_percentile_cont(duration_ms, 0.95) AS p95_duration_ms,
  MAX(duration_ms) AS max_duration_ms,
  SUM(CASE WHEN outcome <> 'committed' THEN 1 ELSE 0 END) AS unsuccessful
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY service, transaction_name, release
ORDER BY p95_duration_ms DESC, unsuccessful DESC;

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

查询结果

p95 交易持续时间

发票最终确定具有最长的尾部和最不成功的结果。

servicetransaction_namereleasetransactionsp95_duration_msmax_duration_msunsuccessful
billinginvoice-finalizeapi-888206,80024,10028
projectsmember-importapi-882404,21018,2009

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

p95 transaction duration:来自 Measure Long-Running Database Transactions 示例结果的合成 p95_duration_ms 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

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

SQL 是如何工作的

  1. 1事务类将持续时间连接到应用程序所有者。
  2. 2最大程度暴露了稳定百分位旁边的极端资源。
  3. 3非提交结果包括完整终端视图的回滚和超时。

需要决定的边缘情况

  • 缺少终端事件需要单独的开始到终端连接。
  • 服务器等待事件和锁定图需要数据库本机诊断。
  • 不要记录具有绑定值的语句。

推荐仪表板

  • 酒吧:p95_duration_ms(按交易)
  • 趋势:发布不成功
  • 表:最长安全交易事件

警报指导

当关键事务超时或其 p95 超出所有者批准的界限时发出警报。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

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

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

获取 API 密钥