v查询优化分类 :
n代数优化:指关系代数表达式的优化
n物理优化:指存取路径和底层操作算法的选择
v关系数据库管理系统查询处理阶段 :
1. 查询分析
2. 查询检查
3. 查询优化
4. 查询执行
v选择操作典型实现方法:
(1) 全表扫描方法 (Table Scan)
l对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出
l适合小表,不适合大表
(2)索引扫描方法 (Index Scan)
l适合于选择条件中的属性上有索引(例如B+树索引或Hash索引)
l通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表中找到元组
v全表扫描算法
n假设可以使用的内存为M块,全表扫描算法思想:
①按照物理次序读Student的M块到内存
②检查内存的每个元组t,如果满足选择条件,则输出t
③如果student还有其他块未被处理,重复①和②
连续操作的实现
(1)嵌套循环算法(nested loop join)
(2)排序-合并算法(sort-merge join 或merge join)
(3)索引连接(index join)算法
(4)Hash Join算法
v查询优化在关系数据库系统中有着非常重要的地位
v关系查询优化是影响关系数据库管理系统性能的关键因素
v由于关系表达式的语义级别很高,使关系系统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性
v关系系统的查询优化
n是关系数据库管理系统实现的关键技术又是关系系统的优点所在
减轻了用户选择存取路径的负担
v关系数据库管理系统通过某种代价模型计算出各种查询执行策略的执行代价,然后选取代价最小的执行方案
n集中式数据库
l执行开销主要包括
Ø磁盘存取块数(I/O代价)
Ø处理机时间(CPU代价)
Ø查询的内存开销
lI/O代价是最主要的
n分布式数据库
l总代价=I/O代价+CPU代价+内存代价+通信代价
v查询优化的总目标
n选择有效的策略
n求得给定关系表达式的值
n使得查询代价最小(实际上是较小)