oracle浅析导致数据库性能问题的常见原因

㈠ 不合理的大表全表扫描

详见:点击打开链接

v$session_longops视图记录了超过6秒的所有SQL语句
        这其中绝大部是全表扫描的语句!

㈡ 语句共享性不好

常出没在OLTP,由于app没有合理使用绑定变量,导致大量重复的语句Parse,浪费大量的shared pool,使CPU利用率居高不下

㈢ 过量的排序操作

有个原则:能不排序就不排序
        特别是multi-pass,与事务设计、缺乏索引、优化器的选择等均有关系

㈣ 大量递归SQL语句

由sys执行,以大量的空间管理sql语句为甚
        常见于大数据处理
        作为DBA,大数据处理前,主动进行存储空间的分配

㈤ 优化器和统计信息

代码有时候,在测试环境能跑,到了生产环境就“萎”了
        这是因为,生产环境没有及时采集统计信息,导致Oracle优化器不了解最新的数据和应用情况,而错误地选择了非优化的执行路径
        所以,我们需及时采集统计信息,保证基于CBO的优化器能欢快运行

㈥ 不合理的参数设置

系统参数一定要调,还要合理地调
        主要是些内存参数、进程参数等

㈦ 存储部署不合理

由于存储部署不合理导致I/O效率低下
        处理方案:ASM、RAID10等

㈧ 频繁的数据库连接操作

主要是C/S结构比较常见,几乎绝迹于B/S了

㈨ Redo Log 设计不合理

Redo log文件设计太小,频繁触发checkpoint事件,导致内存紧张和I/O繁忙
        Redo log文件文件组太少,则可能使归档无法赶上redo entries产生的速度

本文转自:http://blog.csdn.net/dba_waterbin/article/details/8455530

时间: 2024-10-29 11:49:37

oracle浅析导致数据库性能问题的常见原因的相关文章

Oracle DBA优化数据库性能心得

如今的优化己经向优化等待(waits)转型了,实际中性能优化最根本的出现点也都集中在IO,这是影响性能最主要的方面,由系统中的等待去发现Oracle库中的不足.操作系统某些资源利用的不合理是一个比较好的办法. 一.通过操作系统的一些工具检查系统的状态,比如CPU.内存.交换.磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲这也可能不是一个正常的状态,因为cpu可能正等待IO的完成.除此之外我们还应观注那些占用系统资源(cpu.内存)的进程. 1.如何检查操作系统是否存

Oracle归档日志满导致数据库性能异常慢

这个问题遇到的时候,我没有查看告警日志,一直以为是数据库的锁阻塞影响了性能.知道查看日志才发现时归档日志已满.才导致这种问题的产生: Errors in file /DBBK/oracle/diag/rdbms/orcl/orcl/trace/orcl_arc0_28918.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 34764800 bytes disk space from 40705

Oracle 、MySql 数据库表被锁的原因分析

记录一次准备给客户预演示出现的问题 事故的背景: 当所以功能开发完成后,开发人员在本地进行了测视已经没问题了.就把所有开发的功能模块合并到 dev 分支,进行打包,发布到预演示的线上环境.当在给相关人员进行演示的时候,出现了问题. 我们使用 https 调用对方的接口发送 Json 数据,对方进行校验马上返回校验的响应结果.问题出现在我们每次发送数据都是成功的,但是对方发送回来的数据,一直不能正常插入 DB(使用的是 Oracle). 事故的真正原因: 因为有个同事在进行了 delete 后没有

Spark处理数据出现大量GC导致处理性能变慢的原因及解决方案

Spark应用程序处理的大数据多是运行于JVM上的,经常要面对GC优化问题.下面给出由于Linux系统原因导致的GC耗时异常的处理方式: 打开Spark的GC日志,在spark-env.sh文件中的SPARK_JAVA_OPTS参数上添加 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 如果每次GC回收的量基本相同,但是在某一时间点,耗时异常大,这种情况下,有两种可能: 1.GC收集对象所在内存被swap了 2.GC线程进入IO等待状

怎么样做好oracle数据库性能优化,包含哪些内容?

名称: 数据库可靠性服务(性能调优.性能诊断) 定义: 此服务指对用户的数据库进行性能方面的分析.评估.调整,以提高数据库系统的整体性能. 客户收益: 1.尽早发现性能瓶颈,及时调整,保障数据库稳定高效工作 2.根据客户业务特点,调整数据库配置,使数据库性能最优 3.保障系统业务数据的安全. 4.提升客户业务能力. 工作内容: 1.对数据库信息进行收集. 2.查找引起数据库性能下降的各种原因,制订解决方案 3.根据客户业务特点及数据库状态,制定数据库调优方案 4.在业务允许的情况下,对系统做好备

MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看看 DBA 的具体工作:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用. 上面这些是我们 DBA 的功能,了解这些功能以后要对体系结构有更加深入的了解,你不知道怎么处理这些故障和投诉的事情. 所以我们要去了解缓存/线程.SQL 优化.存储引擎.SQL 审计以及锁与实务:体系结构更深一点,就去

ORACLE数据库性能优化之-->内存磁盘

1,内存结构优化概述 1.1 缓冲区 影响数据库运行性能的缓冲区包括可以共享的SGA和服务器进程私有的pga两大类,其中sga又包括共享池.大型池.java池.数据缓冲区.流池.redo log缓冲区. 1.2 自动内存管理 oracle一般采用自动内存管理来管理系统内存,由oracle自动管理和调整数据库实例的内存大小.在自动管理模式下,首先对初始化参数MEMORY_TARGET(目标内存大小)和MEMORY_MAX_TARGET(最大内存大小)进行配置,数据库调整目标内存大小,根据需要不断重

探究 Oracle 高水位对数据库性能影响

2016-08-11 陈龙 恩墨学院 探究 Oracle 高水位对数据库性能影响1大家好!我是来自云和恩墨的陈龙,目前主要负责Oracle技术支持工作.在我开始学习Oracle 的时候就听eygle老师说过,要想学好技术,一定要要多做实验,多做学习记录,理论与实践相结合,才能真正理解吸收那些知识,所以今天我想分享一下对Oracle高水位线与SQL访问性能相关性的研究体会.谈不上很深入的研究,只是想与大家分享我的Oracle学习过程,希望能与大家交流进步.之所以分享这个学习内容,是因为在我曾经经历

Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢

1.1       现象描写叙述 数据库节点响应缓慢,部分用户业务受到影响. 查看数据库告警日志,開始显示ORA-07445错误,然后是大量的ORA-04031错误和ORA-00600错误. 检查数据库日志,数据库仍处于活动状态的信息例如以下: Sat Jul 17 07:51:52 2010 Thread 1 advanced to log sequence 266272   Current log# 2 seq# 266272 mem# 0: /dev/rlv_redo121   Curre