查询优化

来源:互联网 发布:android mac apktool 编辑:程序博客网 时间:2024/05/21 12:08

一 概述:

(1)查询优化在关系数据库系统中有着非常重要的作用。减轻了用户的负担,用户只要提出“干什么”,不必指出“怎么干”。查询优化由RDBMS实现,查询优化是影响RDBMS性能的关键因素。

*查询优化的优点:不仅在用户必须考虑如何最好的表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做的更好。


(2)查询执行的代价:

*集中式数据库:磁盘读取块数(I/O代价)+处理机代价(CPU代价)+查询的内存开销。主要是I/O代价。

*分布式数据库:磁盘读取块数(I/O代价)+处理机代价(CPU代价)+查询的内存开销+通信代价。


(3)查询优化总目标:选择有效的策略,求得给定关系表达式的值,使得查询代价最小。

(4)查询优化分类:代数优化和物理优化。

(5)对于复杂的查询,尤其是涉及连接和嵌套的查询,不要把优化的任务全部放在RDBMS上,应该找出RDBMS的优化规律,以写出适合RDBMS自动优化的SQL语句。对于RDBMS不能优化的查询需要重写查询语句,进行手工调整以优化性能。


二 代数优化:

(1)代数优化:通过对关系代数表达式的等价交换来提高程序效率。

*关系表达式的等价:指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的。


三 物理优化:

(1)物理优化:要选择高效合理的操作算法和存取路径,求得优化的查询计划,达到查询优化的目标。