SQL优化:常见索引未利用的情况及策略
需积分: 3 148 浏览量
更新于2024-08-15
收藏 407KB PPT 举报
本文主要探讨了SQL优化中的关键知识点,特别是在某些情况下索引未被使用的常见问题。首先,文章提到了Oracle SQL优化器的两种模式:RBO(规则基础优化器)和CBO(成本基础优化器)。RBO在Oracle 9i中逐渐被淘汰,而CBO在Oracle 10G中成为主流,它的决策依据是查询执行的成本。通过初始化参数如CHOOSE、ALL_ROWS、FIRST_ROWS和FIRST_ROWS_N,用户可以调整优化器的行为。
SQL语句的执行过程分为解释、优化、行源生成和执行语句四个步骤。解释阶段会检查语法正确性、语义一致性,并确保有足够的权限访问数据库对象;优化阶段涉及RBO和CBO的选择,CBO根据预估的资源消耗来决定最佳执行路径;行源生成阶段确定数据的读取方式,单块读取(SRds)和多块读取(MRds)都会影响成本计算;最后执行语句,成本模型考虑了单块和多块读取的时间,以及CPU的使用情况。
索引不被使用的情况包括:对同一表中两列的比较,因为这通常不会利用到索引的高效特性;使用`is null`、`is not null`、`not in`、`not exist`或列与值不等于的操作,因为这些操作可能无法匹配索引;当函数应用在WHERE子句时,如`nvl`、`to_char`等单行函数,这些函数可能导致索引失效;以及使用通配符`%`或`_`作为查询字符串开头,因为它们会模糊匹配,无法直接利用索引。
此外,文章还涵盖了常用的表连接方法、访问路径选择,以及如何使用hint来指导优化器行为。提到的Toad是一个常用的数据库优化工具,它可以帮助用户监控和调整SQL性能。最后,文章可能会提供SQL优化的实际案例和Q&A环节,以帮助读者理解和应用这些理论知识。
本文深入浅出地讲解了SQL优化的关键概念,提供了丰富的实例和实用技巧,对于提高SQL查询效率具有很高的参考价值。
2014-05-29 上传
2011-07-11 上传
2017-08-09 上传
2022-03-25 上传
2016-01-27 上传
2021-03-09 上传
2021-11-05 上传
2021-09-01 上传
2022-11-28 上传
欧学东
- 粉丝: 897
- 资源: 2万+
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查