首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

ADF 應用中追蹤 SQL 執行時間的實作方案

     編輯:Oracle 資料庫相關知識

Oracle ADF(Application Development Framework)是 Oracle 提供的企業級開發框架。在進行效能測試時,常需要掌握當前頁面執行了多少 SQL 查詢以及各自耗時。常見的 log4jdbc 方案因 ADF 不支援封裝驅動而無法直接套用;若在資料庫層面攔截,不僅設定複雜(需配置 Session 屬性),還得修改後續代碼,維護成本極高。

ADF 的 ViewObjectImpl 雖提供覆寫 SQL 呼叫的方法,但同樣需要動到既有代碼。最終採取的策略是修改 ADF 核心庫 adfm.jar,實現零侵入式監控。

實作步驟

  1. 使用修改後的 adfm.jar 覆蓋原有檔案。
  2. 在 JVM 啟動參數加入:
    -DSQLTrackerToFile=D:\log.txt -DenableSQLTracker=true
  3. 重啟應用伺服器,即可在指定日誌檔案中看到 SQL 執行時間記錄。

日誌輸出範例

195:<SQL:>SELECT Geos.CREATED_BY, Geos.CREATED_TS, Geos.FAX_NUMBER, Geos.FROM_EMAIL_ADDRESS, Geos.ID, Geos.MODIFIED_BY, Geos.MODIFIED_TS, Geos.NAME, Geos.PHONE_NUMBER, Geos.REPLY_TO_EMAIL_ADDRESS, Geos.IS_DEFAULT FROM GEOS Geos ORDER BY Geos.IS_DEFAULT,Geos.NAME
195:<ElapsedTime(ms):>729

此法最大優勢在於完全不修改業務代碼,透過替換核心 Jar 包與啟動參數即可開啟/關閉追蹤,極適合生產環境臨時排查或長期效能基線建立。

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