首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle 客戶端程式 SQL 追蹤與調優完整步驟(二):啟動追蹤、收集資料、關閉與格式化

     編輯:關於SqlServer

承接上篇,本文說明啟動追蹤、收集資料、關閉追蹤,以及使用 tkprof 格式化追蹤檔產生分析報表的完整操作。

步驟 3:啟動追蹤

EXEC sys.dbms_system.set_sql_trace_in_session(8, 3, TRUE);

注意: 只有目標 Session 再次發出 SQL 陳述式 後,才會在 user_dump_dest 目錄產生 .trc 追蹤檔。

步驟 4:讓系統運行收集資料

讓目標應用程式正常運作一段時間(視業務量而定,建議涵蓋完整業務週期),確保追蹤檔包含代表性 SQL。

步驟 5:關閉追蹤

EXEC sys.dbms_system.set_sql_trace_in_session(8, 3, FALSE);

步驟 6:格式化追蹤檔

在作業系統命令列執行 tkprof:

tkprof dsdb2_ora_18468.trc dsdb2_trace.out SYS=NO EXPLAIN=SCOTT/TIGER

參數說明:

  • dsdb2_ora_18468.trc:輸入追蹤檔名稱(含路徑)。
  • dsdb2_trace.out:輸出報表檔名。
  • SYS=NO:略過 SYS 使用者的遞迴 SQL。
  • EXPLAIN=SCOTT/TIGER:連線資料庫產生執行計畫(需有權限)。

常用 tkprof 排序選項範例

指令用途
tkprof tracefile.trc sort_1.prf EXPLAIN=apps/pwd PRINT=10 SORT='(PRSQRY,EXEQRY,FCHQRY,PRSCU,EXECU,FCHCU)'依查詢/執行/擷取階段 CPU+Elapsed 排序,顯示前 10 筆
tkprof tracefile.trc sort_2.prf EXPLAIN=apps/pwd PRINT=10 SORT='(PRSELA,EXEELA,FCHELA)'依 Elapsed 時間排序
tkprof tracefile.trc sort_3.prf EXPLAIN=apps/pwd PRINT=10 SORT='(PRSCNT,EXECNT,FCHCNT)'依呼叫次數排序
tkprof tracefile.trc normal.prf EXPLAIN=apps/pwd預設格式報表

報表關鍵指標: PARSE(解析)、EXEC(執行)、FETCH(擷取)的 CPU、ELAPSED、DISK(物理讀)、QUERY(邏輯讀)、CURRENT(當前模式讀)、ROWS(處理列數)。重點關注高 ELAPSED、高 DISK、高 QUERY 的 SQL 進行索引優化或 SQL 改寫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved