Oracle資料庫效能分析工具介紹

2021-03-31 08:56:59 字數 1411 閱讀 6651

最近在做乙個效能監控的專案,主要是監控主機和資料庫的基本效能,主機採用jni方式採集,資料通過各種方式進行採集(根據不同的資料庫使用不同的方式),主要以jdbc方式為主其他資料庫分析工具輔助。做專案的過程中對oracle的statspack有一定的了解,這個工具將對各種原因造成的資料庫效能問題做乙個簡單的分析,包括sql語句的效能。下面對此做簡單介紹。

statspack工具是oracle8.1.6以後版本帶有的工具,完全是指令碼寫的,操作過程與執行指令碼一致。該工具建立時需要預設表空間、臨時表空間以及使用者perfstat的密碼,使用者perfstat是工具建立時建立的使用者,該使用者對所有需要監控效能的表有唯讀許可權。工具建立是執行指令碼spcreate.sql來實現的:

for example, on unix:

sql> connect / as sysdba

sql> define default_tablespace='tools'

sql> define temporary_tablespace='temp'

sql> define perfstat_password='my_perfstat_password'

sql> @?/rdbms/admin/spcreate

該過程建立40多個表,表名均以stats$開始,通過呼叫儲存過程dbms_job.interval(job_number,'sysdate+(1/48)')設定取樣週期引數。

sql>  connect perfstat/my_perfstat_password

connected.

sql>  @?/rdbms/admin/spreport

需要的效能一般都可以從該報告中得到,如果資訊不足可以通過

execute statspack.snap(i_snap_level=>6);

來設定採集資訊的級別,級別越高資訊越詳細。

這裡做的只是乙個非常簡單的介紹,主要告訴你what to do?而不是how to do?,這種方式對一種**監控程式來說,有乙個致命的弱點:監控中許多指標的時間間隔必須是1秒,這樣的時間間隔會造成資料庫中資料量迅速增加,必須進行定期清除;另外,由於分析包需要安裝,**監控程式發布也會比較麻煩,需要對被監控的資料庫進行大量操作。

整體考慮**程式監控資料庫的解決方案,條件是oracle資料庫裡存放的累計值,做命中率、io效能分析等的報告時必須通過邏輯處理。對於三層業務邏輯來說(監控程式是乙個業務邏輯層,只是提供介面返回一定格式的資料),這部分最合理的方式應當是放在業務層,展示層顯然是不應該存放大量業務邏輯的;資料層是採集的物件,數量不定,對靈活性和擴充套件性影響比較大,也就是前面說的原因,使用起來非常不方便,那麼這部分放在邏輯層處理顯然是比較合理的。這也給實現方式帶來了一定的挑戰!

Oracle資料庫效能除錯工具

oracle enterprise manager oracle em是使用者安裝oracle,建立了資料庫並配置好網路資源後,oracle附帶安裝的乙個資料庫管理軟體。同時,em也提供對效能除錯有幫助的工具,如sql loader和recovery manager rman 等。oracle di...

Oracle資料庫 Exp Imp工具效能調優

摘要 oracle exp imp工具是乙個操作簡單 方便靈活的備份恢復和資料遷移工具,它可以實施全庫級 使用者級 表級的資料備份和恢復。對於資料量在g級或g級以內,強調高可用性,可以容忍少量資料丟失的資料庫系統,exp imp是普遍使用的邏輯備份方式。目前現網很多生產系統均使用exp imp進行備...

oracle資料庫效能

效能檢視v 開頭 v system event 正在等待的資源的系統資訊 v session event 會話累計發生的等待事件 v session wait 會話正在等待或者曾經等待的詳細時間資訊 v session 正在等待或者曾經等待的會話資訊 v metricname 檢視快取記憶體命中率 ...