Firebird 查询优化
Firebird 查询优化 涵盖 SELECT 语句的执行方式:计划、统计信息、访问方法、调优模式,以及如何使用 MON$ 和 Trace API 捕获慢查询。
课程大纲
-
SELECT 查询的性能 - 查询如何执行
- 客户端-服务器模式
- 准备、计划生成、执行、获取、缓冲
-
执行统计信息
- 读取、写入、获取、时间
- 数据库缓存、磁盘、CPU
- 垃圾数据如何影响执行
- 缓存命中(Classic 与 SuperServer)
-
访问方法 / 数据路径
- NATURAL 扫描
- INDEX 搜索:B-树、记录指针、方向、示例
- 强制索引使用、索引位图合并
- 表基数和索引选择性
- 在 WHERE 中关闭索引
- 索引 ORDER 与 SORT(
firebird.conf设置) - 在 ORDER BY / GROUP BY 中关闭索引
- 存储过程和视图中的计划
-
查询调优
- 如何阅读 PLAN
- 优化器调整
WHERE FIELD IN (…)- LIKE、CONTAINING、STARTING WITH
- JOIN:隐式与显式、错误连接、LEFT/RIGHT、自连接
- UPDATE + SELECT
- MAX、MIN、COUNT、AVG、SUM
- IN 与 EXISTS 与 MERGE
WHERE (X AND Y) OR (K AND N)
-
使用 MON$ 和 Trace API 跟踪慢查询
- MON$ 和 Trace 是什么
- 重要的 MON$ 字段
- Trace API 参数和输出
- 工具(包括 HQbird 监控)