关系数据库系统的查询处理
4 个阶段
- 查询分析
- 查询检查【此时的完整性检查是初步的、静态的检查】
- 查询优化【分为代数优化、物理优化】
- 查询执行
关系数据库系统的查询优化
查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较高地效率,而且在于系统可以比用户程序的“优化”做得更好
在集中式数据库中,查询执行开销主要包括磁盘存取块数(I/O 代价)、处理机时间(CPU 代价)以及查询的内存开销
计算查询代价时一般用查询处理读写的块数作为衡量单位
代数优化
代数优化的策略:通过对关系代数表达式的等价变换来提高查询效率
等价变换规则
查询树的启发式优化
- 选择运算尽可能先做
- 把投影运算和选择运算同时进行
- 把投影同其前或后的双目运算结合
- 把某些选择同在它前执行的笛卡尔积结合起来成为一个连接运算
- 找出公共子表达式
物理优化
- 基于规则的启发式优化,利用索引进行优化
- 基于代价估算的优化,利用统计信息进行优化
- 两者结合的优化方法