SQL Trace主要是對資料庫進行SQL監測,可以隨時監測和調整作用於資料的應用程式。比如ERP系統它的應用介面很多,涉及的底層操作也很多,如果想知道在某個介面的操作在底層資料庫執行了哪些SQL語句,就需要開啟Trace功能記錄下這些SQL操作,方便開發人員瞭解上層應用程式對資料庫做了哪些動作。本篇通過簡單一實例示範如何使用TKPROF閱讀Oracle Trace檔案。
1. 開啟Trace功能
有些應用程式本身可以提供開啟Trace的功能。比如Oracle的ERP在應用程式介面的功能表列都會有Trace功能,如:
PL/SQL的菜單中也有相同設定:
當然也可以在SQLPLUS中執行下面命令來開啟Trace:
alter session set sql_trace = true; /*開啟*/alter session set sql_trace = false; /*關閉*/
2. 記錄SQL到Trace檔案
通過SQLPLUS登入資料庫,開啟Trace功能,執行一個SQL語句,關閉Trace:
3. 瀏覽Trace檔案
開啟Trace檔案目錄:
cd /ora10g/admin/otdrdb/udump
按日期顯示,出現在頂端的檔案即為剛剛產生的Trace檔案:
ls –t |more
先看一下未經過處理的Trace檔案,其內容格式不方便閱讀:
more otdrdb_ora_30597.trc
用tkprof 對otdrdb_ora_30597.trc進行一下處理:
tkprof otdrdb_ora_30597.trc
輸入output檔案名稱,例如otdrdb_ora_30597.txt
再來看一下處理後otdrdb_ora_30597.txt檔案的內容:
之前執行的select count(*) from users語句就會在Trace檔案中體現出來,並且相應的一些執行參數也會體現出來。 這樣就可以通過這個方式隨時監視應用程式對資料庫的操作了。
更多TKPROF內容可參考http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/sqltrace.htm#1018