关系数据库系统的查询优化
关系查询优化是影响RDBMS性能的关键因素
v查询优化的总目标:
选择有效的策略
求得给定关系表达式的值
使得查询代价最小(实际上是较小)
集中式数据库
Ø执行开销主要包括:
磁盘存取块数(I/O代价)
处理机时间(CPU代价)
查询的内存开销
ØI/O代价是最主要的
分布式数据库
Ø总代价=I/O代价+CPU代价+内存代价+通信代价
例题:
例1:求选修了2号课程的学生姓名。用SQL表达:
SELECT Student.Sname
FROM Student,SC
WHERE Student.Sno=SC.Sno AND SC.Cno=‘2’;
系统可以用多种等价的关系代数表达式来完成这一查询
1. Q1=πSname(σStudent.Sno=SC.Sno∧Sc.Cno='2' (Student×SC))
1. 计算广义笛卡尔积
2. 作选择操作
3. 作投影操作
2. Q2=πSname(σSc.Cno='2' (Student SC))
1. 计算自然连接
2. 读取中间文件块,执行选择运算
3. 把第2步结果投影输出。
3. Q3=πSname(Student σSc.Cno='2'(SC))
1. 先对SC表作选择运算,只需读一遍SC表
2. 读取Student表,把读入的Student元组和内存中的SC元组作连接
3. 把连接结果投影输出
4.
v假如SC表的Cno字段上有索引
第一步就不必读取所有的SC元组而只需读取Cno=‘2’的那些元组(50个)
v若Student表在Sno上也有索引
第二步也不必读取所有的Student元组
因为满足条件的SC记录仅50个,涉及最多50个Student记录
读取Student表的块数也可大大减少
- 【数据库系统概论】-关系查询处理和查询优化
- 数据库 - 关系数据库系统的查询优化
- 公交车路线查询系统后台数据库设计--换乘算法改进与优化
- 关系代数是关系数据库系统查询语言的理论基础
- 数据库系统概念(机械工业出版社,第六版)复习——第十一章:查询处理和查询优化
- 关系数据库的查询优化策略
- MySQL关系数据库系统IF查询处理远程拒绝服务漏洞
- 关系数据库的查询优化
- 关系数据库的查询优化策略----总结了一些查询优化的方法,希望可以对大家有所帮助(原创)
- 公交车路线查询系统后台数据库设计--换乘算法改进与优化
- 数据库 - 关系数据库系统的查询处理
- 数据库系统查询优化的步骤
- 关系数据库的查询优化策略
- 公交车路线查询系统后台数据库设计--换乘算法改进与优化
- 建立查询系统性能调优(3)----数据库索引优化
- 公交车路线查询系统后台数据库设计--换乘算法改进与优化
- 关系数据库的查询优化策略----总结了一些查询优化的方法,希望可以对大家有所帮助
- 数据库-学生选课系统实例(关系查询的使用方法)
- 第4章 关系系统及其查询优化 练习
- 关系代数对于数据库的查询优化的指导意义