华南理工大学计算机科学与工程学院研究生课程(数据库管理及应用)db04
数据库调优数据库调优
为什么需要数据库调优为什么需要数据库调优
• 数据库的部署和运行,可能会显露出一些初始
数据库物理设计所忽略的因素和问题。
通过收集各种真实的数据统计,对物理设计进行修改
通过监控资源使用以及内部的DBMS 的处理,能够发
现系统的瓶颈,如对同一个数据或设备的争用
• 因此有必要不断监控并修改物理数据库设计。
2
系统调优的最终目标系统调优的最终目标
•• 使应用运行得更快使应用运行得更快
• 缩短查询/事务的响应时间
• 提高事务的整体吞吐量提高事务的整体吞吐量。
3
性能调整性能调整
• 数据库性能调优是知识密集型的学科,需要综合
考虑各种复杂的因素:数据库缓冲区的大小、索
引的创建、语句改写等等。调优需要有广泛的知
识
• DBA 花费时间最多的领域
• 一个经常性的极具挑战性的工作个经常性的极具挑战性的工作
• 需要将技术知识与日常的经验和观察相结合的领
域域
4
关系数据库系统的查询优化关系数据库系统的查询优化
5
查询优化查询优化
• 查询优化是在众多的查询方案中选择出最查询优化是在众多的查询方案中选择出最好好效率效率
的执行计划的一种处理过程
• 查询优化有多种方法查询优化有多种方法
代数优化: 通过对关系代数表达式的等价变换来提高
查询效率查询效率,代数优化改变查询语句中操作的次序和组代数优化改变查询语句中操作的次序和组
合,不涉及底层的存取路径。
物理优化物理优化: 通过选择高效合理的操作算法或存取路径通过选择高效合理的操作算法或存取路径
,求得优化的查询计划。
• 例如选择操作典型实现方法有简单的全表扫描方法和索引例如选择操作典型实现方法有简单的全表扫描方法和索引((或或
散列)扫描方法
• 常用的连接操作方法有嵌套循环方法(nested loop) 、排序-合并
方法方法((sort-merge jj oiin 或或merge jj oiin)) 、索引连接索引连接(i(inddex jjoiin))方法方法
和Hash Join方法。
6
选择操作选择操作
• 简单的全表扫描方法
• 索引索引((或散列或散列))扫描方法扫描方法
7
连接操作方法连接操作方法
•• 嵌套循环方法嵌套循环方法((nesttedd lloop))
• 排序-合并方法(sort-merge join 或merge join)
• 索引连接(index join)方法
• 哈希哈希连接连接(Hash(Hash Join)Join)方法方法。。
8
嵌嵌套套循环连接循环连接(Nested(Nested LoopsLoops Join)Join)
• 选选择一个表作为外表个表作为外表,另一