1、應用程序設計的優化調整
應用程序設計的調整修改原則;根據不同的業務需求,從不同角度設計數據庫,其設計核心是對數據的訪問操作。常見的優化手段有:
(1)將長的數據分段放置;
(2)盡量重復命名用SQL語句,以充分利用庫高速緩存(Library Cache);
(3)優化SQL語句,減少條件判斷的使用。
2、對數據讀寫的優化調整
可以利用ORACLE本身帶的utlbstat和Utlestat這兩個SQL程序包收集數據庫運行時的一些性能狀況。最佳的采集時機是:當一個新應用程序剛開始啟動的時候。這時最能反映出應用程序對數據的讀寫要求。上述兩個SQL程序包采集到的信息主要是從V$SYSSTAT、V$LATCH、V$ROLLBACK、V$SESSION、V$LIBRARYCACHE等系統動態表中得到,我們也可以專門對這些表進行單獨的分析。
3、內存管理的優化調整
對內存的管理,主要是從合理分配交換空間的使用;物理頁調換的效率;高速緩沖區利用率如何等方面分析。涉及到內存使用的ORACLE性能優化調整主要有以下幾個方面:
(1)調整ORACLE數據塊(Blocks)和數據緩沖區((Database Buffers)的大小,主要參數是db_block_size;
(2)優化日志緩沖區(Redolog Buffers)的大小,主要參數是Log_buffers;
(3)優化共享池(Shared Pool)的大小,主要參數是Shared_pool _size;
(4)確認數據直接讀寫Cache的有效性;
(5)分配足夠合理的庫高速緩存(Library Cache)空間
(6)設置合適的任務高速緩存區游標(Session cache Cursors)值,主要參數是Session_cached_cursors的初始化值;
(7)在共享池空間內,預先鎖定足夠大的數據塊(Blocks)給PL/SQL使用,此調整主要關系到需要大量使用存儲過程(Storage Procedure)的程序應用。
注釋:本文所提到的參數,均可從ORACLE的initSID.ora文件中查找和修改;
也可從V$PARAMETER表中查詢。
4、磁盤I/O的優化調整
磁盤I/O的瓶頸是較容易發現的。均衡磁盤I/O操作可以提高數據的讀寫速度;同時應該將不同的數據文件和表空間平均地分配在的有的可使用磁盤上。主要的優化調整手段有:
(1) 為數據表建立索引,并將索引與原表分開放置;索引的使用貴精而不貴多;
(2) 對需要經常使用插入(INSERT)和修改(UPDATE)操作的應用程序,應將日志文件(Redolog files)放置在獨自的磁盤設備上,通過與其它的磁盤分開,來提高寫數據的速度。
(3) 檢查數據表空間否碎片過多,并且及時收集整理數據庫碎片;
(4) 使用更多的數據庫緩沖區去高速讀寫數據,以便減少I/O操作;
(5) 選擇合理的文件系統類型;例如:我局的“九七”工程系統就是選用DIGTAL UNIX的高級文件管理系統類型(ADVFS)來代替普通的文件系統類型(UFS);
(6) 在可能的條件下,盡量購買更多的磁盤來擴容系統容量。
5、CPU使用的優化調整
本文討論的CPU優化調整以UNIX操作系統為例。CPU使用時間分四個部分;用戶(usr);系統(sys);I/O等待wio;空閑(idle)。通常應用程序消耗大量的用戶CPU時間,少量的系統CPU時間。一般UNIX操作系統運行時的合理CPU是:
Total CPU (user+sys):80 percent
Wio:10 percent
Idle:10 percent
如果I/O等待的時間值很高,就應該分析系統的I/O性能:如果系統的運行負荷很重并且CPU空閑值很高,那么系統可能出現內存競爭問題。主要的優化調整手段有:
(1) 將所有的ORACLE用戶、進程保持為一CPU優先級;
(2) 使用多CPU處理器的系統,并與用戶進程緊密捆綁;
(3) 靈活使用Client/Server結構;
(4) 對大量的Exports/Imports事務處理,使用單任務工作方式。
6、ORACLE資源競爭的優化調整
如果發現數據庫運行緩慢,而問題又并非出自CPU或者磁盤競爭等方面。那么問題肯定是由ORACLE本身的資源競爭而引起的。減少ORACLE資源競爭的方法有:
(1)使用V$tables等動態表的信息去分析數據庫的運行情況,將各資源競爭段隔離解決:
(2)減少數據庫資源閂(Latch Frees)和回滾段(Rollback Segmets)的競爭;
(3)減少日志緩沖閂(Redolog Buffer Latches)的競爭;
(4)減少并行訪問(Parallel Query)的競爭;
(5) 適當優化調整操作系統的內核參數:特別需要注意的是,對于不同的操作系統,其參數調整的區別是非常大的。
7、ORACLE并行訪問服務(Parallel Server)的優化調整
對ORACLE Parallel Server方面的調整主要是減少DLM(Distributed lock Manager)瓶頸,優化手段有以下幾方面;
(1) 盡量避免索引競爭。由于在ORACLE數據庫內索引將會大量的使用,并且是數據庫競爭的主要原因。解決的要點是:合理建立索引、合理選擇關鍵字、對應不同的數據塊使用不同的索引分布:
(2) 避免Free List競爭。解決的要點是:建立多個Free lists和多個Free list groups,將Free list headers放置在不同的數據塊上;
(3) 避免鎖競爭。強占鎖是OPS中最主要的優化因素。只有適當地將應用程序對系統資源的請求進行隔離,才是最有效解決鎖問題的辦法;
(4) 減少頻繁的磁盤I/O讀寫。把每個Instance的Rollback segments 和Redologs放置到不同的磁盤上,這樣可以將每個節點對數據的讀寫競爭降至最低。
(5) 常用來分析和監控OPS(ORACLE Parallel Server)的狀態的系統級動態表有以下幾類:
V$SESSION-WAIT
V$SESSION_EVENT
V$SYSTEM_EVENT
V$SQL_AREA
V$CACHE
V$PING
posted on 2007-06-13 14:56
老董 閱讀(404)
評論(0) 編輯 收藏 所屬分類:
Oracle