当oracle出现性能缓慢、执行效率低下时,分析调优需从多个角度切入,并逐一优化:
1、SQL语句层面上
A 注意语句中数据查询表的的顺序调整,大表在前(接近where)小表在后,若多个表关联情况下,应选择当中的关联表作为基表。
B 语句中尽少使用函数或自定义,尽量避免group by 、having等字句。
C 过于复杂的逻辑关系语句应分拆成多个sql。
D 动态SQL时应积极使用绑定变量。(数据量越大,提高的效率越明显)
2、数据库优化器的使用
A 建议尽量避免使用‘选择优化器(CHOOSE)’,而应使用成本(CBO)或规则(RULE)优化器。
B 针对某些特定SQL可以使用HINT(提示)来指定使用优化器的类型;
如: select /* +RULE */ from emp;
3、查询分析器(执行计划)及锁对象跟踪
A 通过查询分析器(Trace) 或者 查询计划sql(1 EXPLAIN PLAN FOR <SQL> ; 2 SELECT * TABLE(XPLAN.display) )来查看执行计划(路径),
找出消耗较大的几个位置,根据实际情况作调整。
B 查看是否数据库存在锁对象,存在则酌情将锁对象解决掉。
4、索引使用
A 对于经常需要全表扫描的数据表,则避免使用索引,这种情况下,索引的存在反而是增加消耗影响效率;
B 在增删改操作较频繁的表也应该避免使用索引;这种情况下索引会增加15%左右 的消耗,大大的降低效率。
C 在以查询为主的表中,全表扫描较少使用,的情况下则视实际情况在查询列上建立索引、组合索引、甚至反向索引。
D 此外需要注意的是,索引列上出现函数或者运算符或空、like 等情况下,将会打破索引,因此在sql语句编写上需注意函数、运算、关键字的使用。
5、分区表
A 在数据量庞大表时,需考虑分区存放,这涉及到无论是查询还是增删改都将会大大提高效率。
B 至于使用范围分区、列表分区、散列分区(hash) 还是复合分区,这需要实际的情况而定,详见我另外博文《Oracle 分区简述》。
6、缓冲区(Database buffer cache)
以上情况外,再者就是适当扩充数据缓冲区,以提高命中率(ratio)。
7、业务逻辑优化
再后,其实也是最重要点,应考虑是否可在业务逻辑层面上作适当优化,所谓,聪明的懒人一向都是这样,先从高层面上去想问题。
1、SQL语句层面上
A 注意语句中数据查询表的的顺序调整,大表在前(接近where)小表在后,若多个表关联情况下,应选择当中的关联表作为基表。
B 语句中尽少使用函数或自定义,尽量避免group by 、having等字句。
C 过于复杂的逻辑关系语句应分拆成多个sql。
D 动态SQL时应积极使用绑定变量。(数据量越大,提高的效率越明显)
2、数据库优化器的使用
A 建议尽量避免使用‘选择优化器(CHOOSE)’,而应使用成本(CBO)或规则(RULE)优化器。
B 针对某些特定SQL可以使用HINT(提示)来指定使用优化器的类型;
如: select /* +RULE */ from emp;
3、查询分析器(执行计划)及锁对象跟踪
A 通过查询分析器(Trace) 或者 查询计划sql(1 EXPLAIN PLAN FOR <SQL> ; 2 SELECT * TABLE(XPLAN.display) )来查看执行计划(路径),
找出消耗较大的几个位置,根据实际情况作调整。
B 查看是否数据库存在锁对象,存在则酌情将锁对象解决掉。
4、索引使用
A 对于经常需要全表扫描的数据表,则避免使用索引,这种情况下,索引的存在反而是增加消耗影响效率;
B 在增删改操作较频繁的表也应该避免使用索引;这种情况下索引会增加15%左右 的消耗,大大的降低效率。
C 在以查询为主的表中,全表扫描较少使用,的情况下则视实际情况在查询列上建立索引、组合索引、甚至反向索引。
D 此外需要注意的是,索引列上出现函数或者运算符或空、like 等情况下,将会打破索引,因此在sql语句编写上需注意函数、运算、关键字的使用。
5、分区表
A 在数据量庞大表时,需考虑分区存放,这涉及到无论是查询还是增删改都将会大大提高效率。
B 至于使用范围分区、列表分区、散列分区(hash) 还是复合分区,这需要实际的情况而定,详见我另外博文《Oracle 分区简述》。
6、缓冲区(Database buffer cache)
以上情况外,再者就是适当扩充数据缓冲区,以提高命中率(ratio)。
7、业务逻辑优化
再后,其实也是最重要点,应考虑是否可在业务逻辑层面上作适当优化,所谓,聪明的懒人一向都是这样,先从高层面上去想问题。
发表评论
-
大数据量转存(抽取、同步)
2012-11-22 01:23 681在大数据量的转存过程中,建议使用分批转存(不要一次转存过来 ... -
反向索引之应用
2012-10-19 15:54 752Oracle会自动为表的 ... -
PFILE与SPFILE差异
2012-10-17 11:56 7801.oracle实例启动时,寻找参数文件的顺序为 spf ... -
Oracle 分区简述
2012-10-12 12:01 677oracle8i起开始推出表分区的概念,最初只有范围分区、列表 ... -
Bitmap位图索引"高昂代价"与B-Tree比较
2012-10-10 08:54 672通过以下实验,来验证B ... -
关于Latch与Spin
2012-10-10 08:51 783latch 是一种轻量级用于保护oracle共享内存结构,用 ... -
完整的ORACLE的UTL_FILE的资料
2012-10-08 13:58 732转自:http://blog.csdn.net/alex197 ... -
RAID的类别使用(0,1,0+1,5)
2012-10-08 09:02 723raid0: 熟悉RAID 0的人都知道,它的读写速度是最高 ... -
oracle 裸设备使用和注解
2012-09-28 11:37 934看了一篇不错的的关于 ... -
EM无法登陆问题
2012-05-19 22:20 1277解决ORACLE的EM登录 这几 ... -
oracle的冷/热备份
2012-04-29 11:48 727一、 冷备份 冷 ... -
oracle安装、编译、参数配置
2011-06-09 19:23 686一、安装 按照以下标 ... -
Oracle个人笔记(SQL性能)2B
2011-06-09 19:20 6771.两者区别在哪?select trunc(sysdate,' ... -
start with...connect by prior用法
2011-06-09 19:18 645--当需要根据递归关系查询结果集时 start wit ... -
ORA-01157(表空间数据文件损坏需重建时)
2011-06-09 19:08 1020EM控制台报错如下: 处理步骤: 1. 备份该数据 ... -
工作积累(游标、权限、数组)2
2011-06-09 19:04 678--游标 一、显式游标通 ... -
工作积累(表空间、导出方案、触发器)1
2011-06-09 19:01 672--查看表空间、数据文件相关信息 1、查看表空间包含哪些数据 ... -
Oracle个人笔记(系统查询语句)3
2011-06-09 18:55 550查询锁的表的方法:(1 ... -
Oracle个人笔记(SQL性能)2A
2011-06-09 18:54 7031. ...group by (code,name); 性能要 ... -
Oracle个人笔记(基本规则)1
2011-06-09 18:52 6311.GRANT 权限 ON 表名(对象名) TO 用户;2.o ...
相关推荐
Oracle数据库优化报告 1、概述 Oracle数据库是企业级数据...以上内容仅是Oracle数据库优化的部分要点,实际操作中还需要结合具体业务场景和数据库状态进行深入分析和调整。优化工作需谨慎进行,以防止产生不良影响。
最后,对于系统维护人员和数据库分析师来说,理解和掌握这些优化要点是非常重要的。因为对于他们来说,能够在维护过程中快速诊断并优化数据库性能问题,这不仅能提高工作效率,也是保证系统稳定运行的关键。 总体而...
- **优化器**:讲解了Oracle数据库优化器的作用机制以及如何选择最优的执行计划。 #### 六、Oracle SQL*Plus命令 - **登录到SQL*Plus**:包括在不同操作系统环境下登录SQL*Plus的方法。 - **常用SQL*Plus命令**:...
### Oracle9i 数据库性能优化知识点详解 #### 一、Oracle9i 数据库性能优化概述 Oracle9i 是 Oracle 公司推出的一款功能强大的关系型...希望本文能够帮助大家更好地理解和掌握 Oracle9i 数据库性能优化的核心要点。
信息系统Oracle数据库性能优化是IT行业数据库管理领域的重要议题。Oracle数据库作为关系型数据库的代表之一,其性能优化涉及到多个方面,包括操作系统调整、内存配置、I/O及CPU资源优化等。在当前信息社会背景下,...
Oracle数据库性能优化是一个复杂而重要的任务,涉及到多个层面和技术细节。这份"Oracle数据库性能优化完整版资料.ppt"可能是由eygle编写的,eygle在IT领域,特别是Oracle数据库管理方面有着深厚的背景和专业知识。这...
### Oracle数据库教程知识点详解 ...通过上述内容的学习与实践,可以全面掌握Oracle数据库的相关知识和技术要点,为今后从事相关工作打下坚实基础。此外,建议结合视频教程加深理解,并尝试参与实际项目来积累经验。
- **SGA区参数统计:** SGA(共享全局区)是Oracle数据库中重要的内存区域,对其参数进行统计分析,有助于优化数据库性能。 - **表空间与用户检查:** 检查数据库表空间的使用情况以及用户的权限分配,确保数据的...
Oracle数据库DBA(Database Administrator)专题技术精粹涵盖了Oracle数据库管理...以上是Oracle数据库DBA专题技术的一些核心要点,每个领域都有深度和广度,需要DBA持续学习和实践,以确保数据库系统的高效稳定运行。
这些只是Oracle数据库性能优化的部分要点,实际操作中还需要结合业务需求、硬件配置和数据库负载情况,进行有针对性的调优。通过阅读“Oracle数据库性能优化”PDF,读者将能够掌握更全面的理论知识和实践经验,从而...
本资料“ORACLE数据库SQL语句编写优化总结”深入探讨了如何有效地编写和优化SQL语句,以达到最佳的查询效率。 1. **理解执行计划** - **执行计划**是Oracle解析SQL语句后确定的数据获取策略,了解执行计划可以帮助...
以上只是Oracle数据库性能优化的一部分要点,实际操作中需要结合具体业务场景,进行全面的性能评估和调优。阅读"Oracle数据库性能优化.pdf"应该会提供更深入的指导和实例,帮助理解和应用这些知识。
以上是Oracle数据库备份与恢复的相关知识点总结, 包括了EXP/IMP、SQL*LOADER、OS备份/用户管理的备份与恢复以及RMAN的详细内容和技术要点。这些知识点对于确保数据库的安全性和高可用性至关重要, 希望对您有所帮助。
### Oracle数据库安装手册知识点解析 #### 一、Oracle 10g的安装步骤与要点 1. **数据库安装的启动及方式** Oracle数据库的安装通常通过运行安装介质中的可执行文件开始,如`setup.exe`。安装方式可以选择图形化...
- 硬件维护:硬件设备的支持对Oracle数据库的运行至关重要,初期的调整和优化能解决性能问题,随着规模扩大,专业维护可降低成本,提高安全性。 - 安全管理:采用合适的网络安全软件,定期修补漏洞,及时查杀病毒...
根据提供的文档信息,我们...以上是针对文档中提供的部分内容的详细总结,涵盖了Oracle入门的基础知识、锁和表分区的技术要点等内容。这些知识点对于初学者来说是非常重要的基础,也是深入学习Oracle数据库的关键所在。
Oracle数据库性能优化的要点在于定位问题、监控预警和自动化运维。基线监控能帮助识别数据库组件的健康状况,预警系统则能提前发现异常,而自动化运维平台则结合内置的专家系统,建立性能基线,以便于找出性能变化。...
### 海量数据环境下Oracle数据库系统架构设计与优化思路 #### 一、分布式数据库系统架构设计 在海量数据处理环境中,传统的单机数据库系统已经难以满足高性能和高可用性的需求。因此,分布式数据库系统成为了一种...