用途:基于 crdb_internal.transaction_statistics 的历史聚合统计,分析 CockroachDB 事务指纹,识别高重试事务、事务边界争用、提交延迟异常以及事务的语句构成。与语句级分析(profiling-statement-fingerprints)和实时活动排查(triaging-live-sql-activity)互补:本技能处理历史事务级模式,另两者分别处理单语句优化和实时事务。
主要能力:按时间窗(aggregated_ts 为 UTC 小时桶)查询事务指纹;提取 maxRetries、retryLat、commitLat、svcLat 等聚合指标,以及 contentionTime、networkBytes、maxMemUsage、maxDiskUsage 等采样指标;用 metadata.stmtFingerprintIDs 分析事务的语句组成;支持按应用/数据库聚合重试率、从高重试事务下钻到具体语句。
使用方式:需 SQL 连接集群,并具备 VIEWACTIVITY 或 VIEWACTIVITYREDACTED 权限;默认开启 sql.stats.automatic_collection.enabled,可用 SHOW CLUSTER SETTING sql.stats.automatic_collection.enabled; 检查。以 SELECT 查询 crdb_internal.transaction_statistics,用 ->、->> 与 ::TYPE 提取 JSONB 字段,用 encode(fingerprint_id, 'hex') 转十六进制;建议始终加 WHERE aggregated_ts > now() - INTERVAL '24 hours' 并配 LIMIT。采样指标需过滤 (statistics->'execution_statistics'->>'cnt') IS NOT NULL。
适用场景:重试风暴排查、提交延迟归因、争用热点定位、应用级健康度评分、事务资源消耗与语句构成下钻。
限制:全部为只读查询,但 JSONB 解析和大时间窗有 CPU 与行数开销,建议默认 24 小时;数据保留受 sql.stats.persisted_rows.max(默认 1,000,000 行)限制,有效时间窗取决于负载多样性;采样指标覆盖率受 sql.txn_stats.sample_rate(默认 0.01)控制;多租户环境可用 VIEWACTIVITYREDACTED 脱敏常量。具体版本字段差异与完整 JSON 字段见资料,详细 RBAC 配置暂未提供。