1)設立合理的性能優化目標。
2)測量並記錄當前性能。
3)確定當前Oracle性能瓶頸(Oracle等待什麼、哪些SQL語句是該等待事件的成分)。
4)把等待事件記入跟蹤文件。
5)確定當前的OS瓶頸。
6)優化所需的成分(應用程序、數據庫、I/O、爭用、OS等)。
7)跟蹤並實施更改控制過程。
8)測量並記錄當前性能
9)重復步驟3到7,直到滿足優化目標
1.設立合理的性能優化目標
重點:關於設立目標的最重要的一點是它們必須是可量化和可達到的。
方法:目標必須是當前性能和所需性能的的陳述形式的語句。只需填寫下列語句中的空格即可。
花費了 (時/分/秒),但要求它在 (時/分/秒)內執行。
使用了 (資源量),但它不能使用超過 。
2. 測量並記錄當前性能
重點:
(1)需要在峰值活動時間獲得當前系統性能快照
(2)關鍵是要在出現性能問題的時間段內采集信息
(3)必須在合理的時間段上采集,一般在峰值期間照幾個為期15分鐘的快照
方法:執行STATSPACK
-- 建立性能快照表空間
sqlplus sys as sysdba
create tablespace perfstat datafile '/u02/oradata/dbnms/perfstat.dbf' size 500M extent management local;
-- 安裝STATSPACK
@$ORACLE_HOME/rdbms/admin/spcreate.sql;
-- 獲取性能數據,可以生成多個快照
sqlplus perfstat
execute statspack.snap;
-- 生成性能快照的報表
sqlplus perfstat
select min(snap_id) snapid_min, max(snap_id) snapid_max from stats$snapshot;
@$ORACLE_HOME/rdbms/admin/spreport;