DBMS_PROFILER該工具包主要用來追蹤PL/SQL執行過程中所使用的時間及SQL語句,以供DBA人員分析該PL/SQL裡TOP 10的SQL為何,DBA就可進一步針對該SQL進行SQL Tuning。
<前置作業>
Step 1. 請先檢查該Package是否已存在:
SELECT *
FROM DBA_OBJECTS A
WHERE A.OBJECT_NAME = 'DBMS_PROFILER';
若沒有資料,則表示該Package未建立,故請透過以下步驟來建立所需的Package及Table。
(該Package好像是Oracle 8i開始提供的)
Step 1.1. 請使用DBA權限登入 (例 : sqlplus / as sysdba)
Step 1.2. SQL>@?/rdbms/admin/profload.sql (profload.sql將會建立該Package並Grant權限)
Step 1.3. SQL>@?/rdbms/admin/proftab.sql
(proftab.sql將會建立PLSQL_PROFILER_DATA / PLSQL_PROFILER_UNITS / PLSQL_PROFILER_RUNS)
Step 2. 由Metalink下戴243755.1下戴Script ==> profiler.sql
Script to produce HTML report with top consumers out of PL/SQL Profiler
DBMS_PROFILER data [ID 243755.1]
<PL/SQL 執行數據的收集>
Step 1. 執行DBMS_PROFILER.START_PROFILER來啟動收集程序 。
Step 2. 執行所需監控的PL/SQL。
Step 3. 執行DBMS_PROFILER.STOP_PROFILER來停止收集程序。
Step 4. 執行profiler.sql 進行HTML文件的產生
例 :
begin
DBMS_PROFILER.START_PROFILER('你自己的說明'); --啟動收集程序
--
MY_PKG.P_TEST(); --所需監控的PL/SQL
--
DBMS_PROFILER.STOP_PROFILER(); --停止收集程序
end;
SQL>@profiler.sql
其產出的HTML文件就會列出其TOP 10的SQL
沒有留言:
張貼留言