Oracle PLSQL Procedure 如何進行效能調優分析

來源:互聯網
上載者:User

在Java的效能調優分析中,可以使用 JProfiler 分析JVM運行時的CPU消耗、Memory佔用、Thread情況等資訊。對於Java代碼中調用的Oracle的預存程序、函數它也能輸出調用時間、調用次數等資訊,但對於過程、函數內部的效能情況,JProfiler就使不上力了。

在一次調優實戰中,我就遇到了上面的情況,預存程序是效能問題所在,需要調優,這時就要用上 Oracle 提供的 DBMS_PROFILER package了。

 

1. DBMS_PROFILER 是什嗎?能做什嗎?

它是 Oracle 提供的一個用於效能分析的工具包。從Oracle document 網站找的定義大致是說:

此package能收集PLSQL執行時的效能資料,開發人員可以使用這些資料用於程式分析以提高其運行速度。開發人員可以在一個Session中開啟此工具,它會記錄所有的“資料庫物件(function、procedure這樣的PLSQL代碼)”的效能分析資料,“資料”包括每句代碼的運行次數、已耗用時間、運行平均時間、最長已耗用時間、最短已耗用時間等資訊。

 

2. 使用DBMS_PROFILER對PLSQL進行效能分析

用它進行效能分析的過程大概是這樣的:安裝DBMS_PROFILER package --》 初始化記錄表 --》開啟分析開關 --》 執行你的PLSQL --》去分析表裡面找瓶頸所在 --》解決它。

以下詳解:

2.1 啟用DBMS_PROFILER

先查看是否已安裝:

SQL> desc dbms_profiler

如沒有安裝,執行

SQL> @@C:\oracle\product\10.2.0\client_1\RDBMS\ADMIN\profload.sql

重設記錄表,執行

SQL> @@C:\oracle\product\10.2.0\client_1\RDBMS\ADMIN\proftab.sql

2.2 執行你的PLSQL

begin
DBMS_PROFILER.START_PROFILER ('My Test‘);
--PLSQL 放在這裡
DBMS_PROFILER.STOP_PROFILER;
end;

此段程式會先開啟profiler 的設定,然後執行待測試的代碼,最後再關閉profiler。這是一個典型的應用,DBMS_PROFILER也支援“暫停”,‘恢複“的操作:

DBMS_PROFILER.PAUSE_PROFILER ,DBMS_PROFILER.RESUME_PROFILER

然後就跑下這段代碼,接下來就可以看分析資料了。

2.3查看分析資料

效能資料會被記錄在下面的三張表裡:

select * from PLSQL_PROFILER_RUNS ;
select * from PLSQL_PROFILER_UNITS ;
select * from PLSQL_PROFILER_DATA;

Oracle 10g 安裝後重啟系統,用PLSQL串連報沒有監聽

ORA-03114 PLSQL過程編譯中斷連線錯誤

PLSQL 串連 Oracle簡單配置

PLSQL批量Forall操作效能提升詳解

使用Oracle SQLDeveloper串連資料庫並建立使用者

Oracle內建的PL/SQL Developer匯入匯出資料

在64位Win7系統下安裝Oracle 11g和Oracle SQL Developer用戶端

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.