單擊Tools--->Preferences--->Profiler,下面是對應的配置描述(當前的示範版本9.0.0.1601)
Available Columns --可用列(可以移動到右邊)
Selected Columns --已選擇的列
Time units --時間單位(秒、毫秒、微秒)
Show 0 occurrences --是否顯示執行0次的處理語句
Graphical time display --用圖形顯示處理時間的色彩深度百分比
下面是剖析之後的結果,注意中紅色圈,右邊Text列包含了該過程下調用的其他包過程或函數等
是按Total time排序之後的結果,可以看到當前的這個包耗用時間最多的部分集中在SQL部分,因此可以集中精力對這些SQL進行tuning。
a、Profiler面板工具列
Profiler面板選項卡依次從左往右按鈕,
--配置profiler
--重新整理
--刪除當前結果
--run當前代碼運行起始時間
--Unit則是該代碼調用所有涉及到的模組,預設為所有單元執行的總時間,切換到單元模組則對應該單元模組總時間
unit --單元名稱,即執行的預存程序,包括其調用的過程,匿名塊等
line --程式碼號
total time --該行代碼的執行時間(顏色長度代表該行代碼的執行時間與最長代碼執行時間的百分比圖)
occurrences --此行執行次數
text --對應得程式碼,加密行無法顯示
Average time —平均已耗用時間 (這個三個時間預設不顯示,如果在profiler配置塊設定則顯示)
maximum time --最大已耗用時間
minimum time --最小已耗用時間
Profiler 結果Text文本僅顯示整條代碼的行首部分,對於剩餘部分可以在對應的行中開啟右鍵,選擇[Go to unit line]會直接跳到對應的原始碼位置
可以對Profiler結果不同的欄位進行排序,只需單擊對應列名右側方塊即可。如需要排序Total time列則單擊Total time列右側方塊變成下三角。
使用 DBMS_PROFILER 定位 PL/SQL 瓶頸代碼
對比 PL/SQL profiler 剖析結果