Oracle SQL 性能优化技巧大全
需积分: 3 90 浏览量
更新于2024-08-02
收藏 216KB DOC 举报
Oracle SQL 性能优化
Oracle SQL 性能优化是数据库管理员和开发者需要掌握的重要技能,以下是 53 个常用的技巧:
**选用适合的 ORACLE 优化器**
ORACLE 的优化器共有三种:RULE(基于规则)、COST(基于成本)和 CHOOSE(选择性)。设置缺省的优化器可以通过对 init.ora 文件中 OPTIMIZER_MODE 参数的各种声明,例如 RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。开发者也可以在 SQL 级或是会话(session)级对其进行覆盖。
**基于成本的优化器(CBO)**
为了使用基于成本的优化器(CBO,Cost-Based Optimizer),开发者必须经常运行 Analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过 Analyze 命令有关。如果表已经被 Analyze 过,优化器模式将自动成为 CBO,反之,数据库将采用 RULE 形式的优化器。
**避免使用 CHOOSE 优化器**
在缺省情况下,ORACLE 采用 CHOOSE 优化器,以避免那些不必要的全表扫描(full table scan)。但是,为了提高性能,开发者应该尽量避免使用 CHOOSE 优化器,而直接采用基于规则或者基于成本的优化器。
**访问 Table 的方式**
ORACLE 采用两种访问表中记录的方式:全表扫描(full table scan)和通过 ROWID 访问表。全表扫描就是顺序地访问表中每条记录。ORACLE 采用一次读入多个数据块(database block)的方式优化全表扫描。通过 ROWID 访问表可以提高访问表的效率,因为 ROWID 包含了表中记录的物理位置信息。
**使用索引(INDEX)**
ORACLE 采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系。通常索引提供了快速访问 ROWID 的方法,因此那些基于索引列的查询就可以得到性能上的提高。
**共享 SQL 语句**
共享 SQL 语句可以提高性能和节省内存的使用。ORACLE 将 SQL 语句存放在内存中,位于系统全局区域(SGA,system global area)的共享池(shared buffer pool)中。这块内存可以被所有的数据库用户共享。因此,当开发者执行一个 SQL 语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE 就能很快获得已经被解析的语句以及最好的执行路径。
选用适合的 ORACLE 优化器、避免使用 CHOOSE 优化器、使用索引和共享 SQL 语句都是提高 Oracle SQL 性能的重要技巧。
2009-03-11 上传
2013-04-08 上传
2019-03-14 上传
2009-03-24 上传
2010-03-16 上传
2007-09-14 上传
2009-11-10 上传
2009-01-17 上传
2009-05-25 上传
zhanglix
- 粉丝: 7
- 资源: 1
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案