数据库可观测性与性能监控

共 18 题
#

1. 数据库的"成本可观测性"(Cost Observability)

A 成本可观测性量化并归因资源、查询、存储等成本,支撑成本优化 ✓ 正确答案
B 成本可观测性只关注 CPU 使用率
C 成本可观测性与性能观测无关
D 成本无法按业务维度归因
#

2. 慢查询分析全链路,从 slow query log 采集 → SQL 指纹归一化(pt-query-digest/pg_stat_statements)→ 执行计划对比 → 根因定位(索引缺失/统计过期/锁等待)的标准化排查流程?

A 慢查询只需看单条日志即可归因
B SQL 指纹归一化会丢失模板信息
C 流程为采集→SQL 指纹归一化→执行计划对比→根因定位 ✓ 正确答案
D 执行计划对比无法发现统计过期
#

3. 连接池监控的关键指标,活跃连接数、等待队列长度、连接获取延迟(p99)、连接泄漏检测(borrow 未归还超时告警)?HikariCP 的 leakDetectionThreshold 与 PgBouncer 的 stats 如何配合?

A HikariCP 的 leakDetectionThreshold 检测连接泄漏,PgBouncer stats 反映代理连接情况,二者配合形成两层监控 ✓ 正确答案
B 连接池只需关注连接总数
C 连接获取延迟无法监控
D 等待队列长度与连接池无关
#

4. 数据库 RED/USE 监控方法论,Rate(QPS)、Errors(失败率)、Duration(延迟分布)+ Utilization(CPU/IO/内存)、Saturation(队列深度)、Errors 如何构建完整告警体系?

A RED 面向资源,USE 面向请求
B RED 关注 Rate/Errors/Duration,USE 关注 Utilization/Saturation/Errors,二者互补构建完整告警 ✓ 正确答案
C RED 只关注 CPU
D 告警体系无需分级
#

5. PostgreSQL 可观测性工具链,pg_stat_statements(SQL 统计)+ pg_stat_activity(实时会话)+ pg_stat_replication(复制延迟)+ pg_stat_bgwriter(checkpoint)+ auto_explain(自动记录慢查询计划)?

A pg_stat_statements 显示实时会话
B auto_explain 用于查看锁
C pg_stat_bgwriter 反映复制延迟
D pg_stat_statements 聚合 SQL 统计,pg_stat_activity 看实时会话,pg_stat_replication 看复制延迟,auto_explain 记录慢计划 ✓ 正确答案
#

6. MySQL Performance Schema 与 sys schema,如何通过 events_statements_summary_by_digest 定位 TOP SQL、通过 events_waits_summary_global_by_event_name 定位瓶颈资源?

A events_statements_summary_by_digest 定位瓶颈资源
B events_statements_summary_by_digest 按 SQL 指纹聚合定位 TOP SQL,events_waits_summary_global_by_event_name 定位瓶颈资源 ✓ 正确答案
C sys schema 与 Performance Schema 无关
D Performance Schema 无法统计等待事件
#

7. 数据库监控指标的采集频率与开销(perf schema 采样、慢日志开关)对生产的影响

A Performance Schema 全量开启无额外开销
B 监控采集需权衡精度与开销,如 perf schema 采样、控制慢日志范围,避免拖垮生产 ✓ 正确答案
C 慢日志记录越多越好
D 采集频率不影响性能
#

8. 数据库的"业务可观测性"(Business Observability)

A 业务可观测性把数据库指标映射为业务结果(成功率、响应时间、业务吞吐) ✓ 正确答案
B 业务可观测性只关注 CPU 利用率
C 业务可观测性与用户无关
D 业务可观测性只用于技术排障
#

9. 查询性能基线与异常检测,如何建立 SQL 延迟基线(p50/p95/p99),通过同比/环比检测性能退化?计划变更(plan regression)的自动捕获与告警?

A 基线只需设一次不再更新
B 计划回归无法检测
C 同比/环比无法检测性能退化
D 用 p50/p95/p99 建基线,以同比/环比检测退化,并通过计划对比捕获 plan regression ✓ 正确答案
#

10. 分布式数据库的全链路追踪,如何将应用 trace_id 透传到数据库层(SQL comment hint),实现跨服务 + 跨分片的查询耗时归因?TiDB 的 SQL Digest 与 OceanBase 的 SQL Audit 如何对接 OpenTelemetry?

A 通过 SQL comment hint 透传 trace_id,配合 SQL Digest/Audit 导出到 OpenTelemetry 实现跨分片归因 ✓ 正确答案
B trace_id 无法透传到数据库层
C SQL Digest 与 OpenTelemetry 无关
D 跨分片查询无法归因耗时
#

11. 数据库资源饱和度预警,Buffer Pool 命中率(<99% 告警)、WAL 写入延迟、临时文件使用量、锁等待时间超阈值时的分级响应策略?

A Buffer Pool 命中率、WAL 延迟、临时文件、锁等待反映资源饱和,需按分级响应策略处理 ✓ 正确答案
B Buffer Pool 命中率低于 99% 无需关注
C 临时文件使用量与内存无关
D 锁等待无需告警
#

12. 云数据库 Performance Insights(AWS)/ DAS(阿里云)的原理,如何将等待事件(wait event)按时间切片可视化,快速区分 CPU bound vs IO bound vs Lock bound?

A 它们只展示 CPU 使用率
B 等待事件无法反映瓶颈
C 它们把 DB Load 按等待事件时间切片堆叠可视化,可区分 IO/CPU/Lock bound ✓ 正确答案
D 它们不关联 SQL
#

13. 数据库监控大盘,核心指标、告警阈值与容量预警?

A 大盘覆盖资源/数据库/存储/业务指标,阈值分级告警,并通过趋势做容量预警 ✓ 正确答案
B 大盘只需显示 CPU
C 告警阈值无需分级
D 容量预警只看当前用量
#

14. MySQL 与 PostgreSQL 的等待事件体系(等待类型分类)与典型瓶颈识别

A MySQL 与 PostgreSQL 都有等待事件分类,通过等待类型占比识别 IO/锁/CPU 瓶颈 ✓ 正确答案
B 只有 MySQL 有等待事件
C 等待事件与瓶颈无关
D PostgreSQL 没有等待事件概念
#

15. 数据库 SLO/SLI 定义与错误预算,如何为数据库设定可用性(99.99%)、延迟(p99 < 10ms)、吞吐(> 50K QPS)目标,并通过 error budget 驱动容量规划?

A 错误预算是未达到 SLO 的允许额度,其消耗速率驱动变更决策与容量规划 ✓ 正确答案
B 错误预算越多越好,无需管理
C SLO 无法量化
D 容量规划与 SLO 无关
#

16. 慢查询分析与优化闭环,抓取→执行计划→索引→容量?

A 闭环为抓取→执行计划→索引/改写→容量→验证,先优化再扩容 ✓ 正确答案
B 直接扩容即可解决所有慢查询
C 执行计划分析无法发现索引问题
D 优化后无需验证
#

17. 慢查询与锁等待的关联分析?

A 慢查询与锁等待无关
B 慢查询可能因锁等待导致,需通过会话视图分析阻塞链定位持锁源头 ✓ 正确答案
C 锁等待无法观察
D 长事务不会导致后续 SQL 慢
#

18. 数据库巡检清单(连接数、慢查询、锁等待、复制延迟、备份成功率)的周期检查

A 巡检只需检查空间
B 巡检清单包括连接数、慢查询、锁等待、复制延迟、备份成功率等,周期检查预防隐患 ✓ 正确答案
C 巡检是一次性行为
D 备份成功率无需检查