按照优化层次可将查询优化分为:代数优化和物理优化。代数优化是指关系代数表达式的优化,即按照一定的规则,通过对关系代数表达式进行等价交换,改变代数表达式中操作的次序和组合,是查询执行更高效;物理优化则是指存储路径和底层操作算法的选择。
在集中式数据库中,查询执行开销主要包括磁盘存储块数(I\O代价)、处理机时间(CPU代价)以及查询的内存开销。在分布式数据库中还要加上通信代价,即总代价=I\O代价+CPU代价+内存代价+通信代价
典型的启发式规则有:
1.选择运算应尽可能先做
2.吧投影运算和选择运算同事进行
3.把投影同其前或后的双目运算结合起来
4.吧某些选择同在他前面要执行的笛卡尔积结合起来成为一个连接运算
5.找出公共子表达式
摘自:数据库系统概论(第五版)第九章