1. 程式人生 > >Oracle常用調優手段

Oracle常用調優手段

1、化磁碟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資料庫執行在歸檔模式下時,歸檔程序(ARCn )必然會產生大量的磁碟讀寫。所以應將歸檔日誌檔案條帶化分佈到多個磁碟上單獨儲存。
1.4、優化ORACLE I/O相關的引數設定
db_file_multiblock_read_count:用於控制一個完全連續掃描中一次 I/O 操作所讀取的資料塊的最大值。預設值8
db_writer_processes:資料庫“寫程序”的初始數量。
disk_asynch_io:用於控制資料檔案、 控制檔案和日誌檔案的 I/O 是否非同步 。只有在平臺支援磁碟非同步 I/O的情況下才能更改該引數。
log_archive_max_processes:指定歸檔模式下ARCH 程序的數量。