针对Oracle Lob类型数据的数据库优化案例
项目名称:XX系统交换平台系统
环境:Aix、Linux平台,oracle9i数据库。
问题描述:交换平台数据传输过程中,发现有一个表的数据传输明显慢于其他表。问题查
1、查看ORACLE数据库服务器的系统资源占用情况,发现服务器的CPU和内存
占用都非常低,网络流量波动严重。
2、Oracle进程的CPU占用也很低。
3、Oracle实例默认的临时表空间和数据库重做日志的文件所在表空间读写相
对于其他操作繁忙,初步判断这应该是系统缓慢的瓶颈。
分析问题
1、数据库重做日志的文件所在表空间读写比较繁忙的主要原因应该时数据传输
oracle 字符串转数组
时对表进行大量的插入操作,而且系统默认的三个重做日志分布在同一块磁盘上。
2、临时表空间的读写繁忙,达到57MB/sec以上,相对比较少见,分析插入数据
的类型,发现数据记录的数据类型是LOB。这是由于Oracle对LOB类型数据处理机制和其他数据类型不一样导致的。在对其他数据类型的处理过程中,Oracle是把用户请求的数据从磁盘读入SGA(Oracle数据库的System Global Area内存分区)处理后再通过PGA(Oracle数据库的Program Global Area 内存分区)返回给用户,数据处理绝大部分在物理内存上完成,速度快,对磁盘读写压力小。而对于LOB类型的数据,Oracle的处理机制是不通过SGA,而直接把数据转到系统默认的临时表空间进行处理后再通过PGA返回给用户,由于数据处理大部分都是在物理磁盘上,速度慢,对磁盘读写的压力大。
解决办法
第一步
在数据库的所有不同物理磁盘新建重做日志文件,使之分布于所有物理磁盘上,删除原来日志文件。使得数据库重做日志的数据文件分布在各个磁盘上,在系统繁忙时,有多个磁头可以对磁盘进行读写,提高对重做日志文件的读写能力
第二步
在数据库的所有不同物理磁盘上划分出1024M空间,然后新建临时表空间的数据文件,使之分布于所有物理磁盘上。使得数据TEMP表空间的数据文件分布在各个磁盘上,在系统繁忙时,有多个磁头可以对磁盘进行读写,提高对临时表空间的读写能力
调优前后对比
调整后传输效率得到很大的提升,对比优化前,数据库的传输效率通过第一步和第二步两次优化,传输效率两次优化分别提高了27.56%和118.32%
联系人:qinwenchuang@hotmail
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论