日期:2014-05-16 浏览次数:20434 次
Oracle数据库应用系统的调优主要包括十个方面:
(1)、优化数据库内存;
(2)、在Oracle共享池中固定应用程序代码;
(3)、优化数据存储;
(4)、优化数据排序的技术;
(5)、优化SQL语句;
(6)、优化回退段;
(7)、优化索引;
(8)、优化磁盘I/O;
(9)、定期生成数据库对象的状态统计信息;
(10)、优化操作系统环境。
其实质就是降低CPU负载、改善I/O性能。
数据库的作用就是实现对数据的管理和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数据库性能问题的重要原因。
1.1、Oracle中I/O的产生
1.2、优化OS存储
一、在UNIT环境下,采用裸设备(Raw Device)作为Oracle数据文件的存储设备比采文件系统(File System)存储Oracle数据文件具有较高的读写效率。
二、采用异步IO(Asynchronous IO)方式。在异步IO模式下,进程发出IO请求后无需等待IO完成,可以去处理其它事情;IO请求被放入一个队列中,一旦IO完成,系统会发出信号通知进程。异步IO可以使需要大量写的Oracle进程(如DBWn进程)将IO请求队列化,以充分利用硬件的IO带宽,从而使它们能最大程度实现并行处理。确认操作系统已经设置支持AIO后,还需要设置Oracle初始化参数“DISK_ASYNCH_IO”为“true”以支持异步IO。
三、磁盘负载均衡及条带化(Striping)。条带化技术就是将数据分成很多小部分并把他们分别存储到不同磁盘上的不同区域中去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。通过条带化,DBA可以很轻松的做到IO负载均衡而无需去手工配置。
1.3、优化IO配置
一、利用LVM(Logical Volume Manager逻辑卷管理器)软件合理的配置条带的宽度和深度。
二、采用分离文件策略,避免磁盘热点。尽管我们在硬件和操作系统层面通过磁盘条带化实现了磁盘负载均衡,但我们依然不能避免某些数据文件成为“热点文件”。
分离表、索引和临时表空间的存储,即为应用系统建立单独的数据表空间、索引表空间、临时表空间。
分离重做日志(Redo Log)文件。如果Redo Log文件的IO吞吐率高,则应将Redo Log存储在单独磁盘上,在有充裕磁盘的的情况下,应将Redo Log文件条带化分布到多个磁盘上去;
分离归档日志文件(Archive Log)。当ORACLE数