標籤:
Oracle SQL語句追蹤
1 SQL語句追蹤
追蹤SQL語句的執行過程需要在Oracle伺服器端進行,Oracle伺服器端會檢測並記錄訪問進程所執行的所有SQL語句。下面使用的命令都是在命令列模式下執行的,所以我們需要使用命令列以管理員身份登陸Oracle資料庫。下面就是該工具使用的詳細步驟。
首先要追中SQL語句,我們需要確定追蹤用戶端進程的會話ID,下面命令枚舉了當前伺服器所有訪問進程會話ID和串口,然後選擇需要檢測的會話ID和串口。
Select username, sid, serial# from v$session where username is not null;
然後針對選中的會話ID和串口進行SQL語句追蹤,如下命令所示。
EXECUTE sys.dbms_system.set_sql_trace_in_session(10, 2642, TRUE);
開始追蹤SQL語句後,我們可以在用戶端進行操作,而這些操作過程使用的SQL語句都將被記錄下來,直到我們結束SQL語句追蹤。
最後用戶端操作完成之後,使用下面命令便可以結束SQL語句追蹤。
EXECUTE sys.dbms_system.set_sql_trace_in_session(10, 2642, FALSE);
追中結束後Oracle服務端檔案夾下會產生一個最新的.trc尾碼的檔案,我們可以使用Search Everything工具尋找最近時間生產的.trc檔案,然後使用tkprof工具對該檔案進行解析。
2 TRC檔案解析
解析產生的.trc檔案,需要使用tkprof工具,該工具有非常多的複雜參數可供使用,如果不做複雜要求,可以使用下面簡單的命令將.trc檔案輸出成文字檔。
解析命令如下:
tkprof sqlplus_007.trc out.txt
sqlplus_007.trc為資料追蹤檔案
out.txt 為輸出格式檔案
開啟out.txt檔案,便可以查閱到SQL語句的執行情況。
Oracle SQL語句追蹤