Oracle性能优化技巧总结

需积分: 11 5 下载量 64 浏览量 更新于2024-07-18 收藏 5.14MB DOC 举报
Oracle 学习日志总结 本文档总结了 Oracle 学习日志中的八个重要知识点,涵盖了 SQL 编写、性能优化、设计方面和性能分析等方面。 **SQL 编写** 1. 使用共享 SQL(带占位符或者参数 SQL):在编写 SQL 语句时,使用共享 SQL 可以减少数据库的负载和提高查询效率。 2. 使用表别名:使用表别名可以简化 SQL 语句,提高代码的可读性和维护性。 3. 避免反复访问同一张表或者几张表:在编写 SQL 语句时,尽量避免反复访问同一张表或者几张表, especialmente 对于大数据量的表,可以考虑提取数据到临时表,然后做链接。 4. 避免使用 \*:在 Select 语句中,避免使用 \*,因为 Oracle 需要转换成表的列,通过查询数据字典获得,耗费时间。 5. 注意 WHERE 字句写法:在 WHERE 字句中,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序尽可能的让字段顺序与索引顺序相一致,范围从大到小(左到右)。 6. 不要在 WHERE 子句中的“=”左边进行函数、算术运算或其他表达式运算:否则系统将可能无法正确使用索引。 7. 使用 count(1) 而不是 count(\*):count(1) 比 count(\*) 更有效率。 **性能优化** 在设计方面,需要注意以下几点: 1. 建立索引:建立索引可以提高查询效率。 2. 使用并行取代串行:在数据迁移时,使用并行可以提高效率。 3. 使用临时表处理中间运算过程:使用临时表可以提高计算效率。 **性能分析** 在性能分析方面,需要注意以下几点: 1. 通过查询 v$session_wait 视图,识别性能瓶颈,纠正存在的问题。 2. 通过执行计划,定位慢的位置进行优化。 3. 使用 hints 提示查看路径来改变执行计划。 4. 定期进行表分析。 5. 选用适合的 ORACLE 优化器:RULE(基于规则)、COST(基于成本)、CHOOSE(选择性),在缺省情况下,ORACLE 采用 CHOOSE 优化器,为了避免那些不必要的全表扫描,必须尽量避免使用 CHOOSE 优化器,而直接采用基于规则或者基于成本的优化器。 **内连接和左连接** 在 Oracle 中,内连接和左连接是两个重要的连接类型。内连接又包括等值连接和非等值连接两种。