TKPROF工具
| ORACLE系統中的性能調整方法主要分為兩類:應用系統的調整和數據庫系統的性能調整。應用系統的調整關注的焦點在應用設計相關的方面,比如:事務規則的調整、數據的設計、應用程序的設計,ORACLE系統的性能與應用系統的設計密切相關,性能調整90%的項目都集中在應用程序的調整。 在應用程序調整結束后就將進行數據庫方面的調整。在進行數據庫的性能調整之前,要做的一項關鍵工作是利用工具進行SQL語句的性能分析:TKPROF工具、解釋執行計劃、AUTOTRACE工具。應用程序中低效的SQL語句往往是導致整個系統問題所在。本篇文章將就TKPROF工具進行討論和應用分析。 TKPROF工具 TKPROF工具(Trace Kernel Profile)是用于格式化用戶跟蹤文件的工具,它是個獨立的工具,可以在操作系統下直接執行。 $tkprof ora_12558.trc trace.txt
用戶跟蹤文件包括所有的用戶發出的SQL語句的信息,包括:每條語句的執行時間和占用資源的數量。因為跟蹤文件的信息是沒有格式化的原始信息,所以用TKPROF工具來轉換信息,使其易于理解。
$trprof ora_12558.trc trace.txt 這個例子將會格式化ora_12558.trc跟蹤文件,并生成格式化的轉換文件trace.txt。除了命令的頭兩個參數代表輸入文件名和輸出文件名,還有其他的一些附加參數用于指定期望的信息。這些選項如下所示: 選項?? 定義和用法 TABLE?? 指定執行計劃保存的表名稱,替換缺省的PLAN_TABLE表名。 SYS?? 表明是否格式化的文件包括遞歸的SQL語句。 SORT?? 表明格式化的文件信息排序的規則。 RECORD?? 指定跟蹤文件中的SQL語句寫入哪一個文件。使你能將SQL語句與附加的資源使用信息分開。 PRINT?? 指定格式化的跟蹤文件最多可以寫入的SQL語句的數量。 INSERT?? 執行時創建一個腳本,用于生成一個TKPROF_TABLE表。 AGGREGATE 決定是否將多個執行相同語句分析的結果合并。
該命令將忽略原始文件中的遞歸SQL;在格式化的跟蹤文件中包括每條SQL語句的執行計劃PLAN_TABLE依賴于用戶JOE模式。 例2:$tkprof ora_1234.trc trace.txt print=10 record=sql.txt 該命令將翻譯跟蹤文件ora_1234.trc并保存頭10條SQL語句到輸出文件trace.txt;創建一個文件sql.txt,用于保存原始跟蹤文件的頭10條SQL語句。 例3:$tkprof ora_1234.trc trace.txt insert=trace.sql sort=(fchrow) 該命令將翻譯跟蹤文件ora_1234.trc并保存到輸出文件trace.txt;創建第二個文件trace.sql,用于保存生成TKPORF_TABLE表的SQL命令。如果沒有排序參數fchrow,TKPROF將會按照執行的順序輸出到trace.txt文件中去。
TKPROF的每個排序參數都與SQL語句的三個過程相關:分析、執行和獲取數據。 在分析階段進行執行SQL的準備工作,如進行語句的檢查、循環糾錯、決定要使用對象的用戶權利。與分析階段相關的排序參數有: 選項?? 定義和用法
選項?? 定義和用法
選項?? 定義和用法
(4)用TKPROF翻譯已格式化的跟蹤文件 用戶的跟蹤文件被TKPROF格式化后,結果文件中的內容將會較好地用于性能分析。一個已經被TKPROF分析的格式化文件的例子如附圖。 從這個跟蹤文件可以發現,第三條語句被分析了一次,執行了五次,并執行了250此獲取操作。這個過程耗費了CPU 0.18秒的時間,整個語句執行花費了0.20秒的時間。它需要從磁盤讀取54個數據塊,從SGA讀取266個數據塊并返回245行數據。在最后一行顯示所有統計信息。
使用TKPROF格式化的文件很容易看出需要調整的SQL語句。查找的依據是: *耗費大量的CPU資源 *花費較長的時間進行SQL分析、執行和獲取 *從磁盤讀大量的數據塊,而從SGA區讀的數據很少 *訪問大量的數據塊但只返回一點數據 一旦找到這些語句就可以用執行計劃工具來進一步決定為什么這些語句性能這么低了。 |
總結
- 上一篇: Linux下按日期删除文件
- 下一篇: oracle冷备份/恢复