1
我有一個以JPA and eclipse link
作爲後端的Java應用程序。我希望在應用程序運行時找到執行的特定查詢的explain plan
。我知道我可以通過SQL開發人員來檢查它,但是我希望在應用程序調用查詢時查找查詢的解釋計劃。有沒有辦法做到這一點?如何通過eclipse鏈接查詢查詢的解釋計劃
我試着加入explain plan for select 1 from dual
但它一直拋出異常。
我有一個以JPA and eclipse link
作爲後端的Java應用程序。我希望在應用程序運行時找到執行的特定查詢的explain plan
。我知道我可以通過SQL開發人員來檢查它,但是我希望在應用程序調用查詢時查找查詢的解釋計劃。有沒有辦法做到這一點?如何通過eclipse鏈接查詢查詢的解釋計劃
我試着加入explain plan for select 1 from dual
但它一直拋出異常。
您沒有太多選擇。對於一些未知的原因Hibernate和enclipselink不支持這樣的事情見setting-context-in-a-jpa
所以,你必須使用純Oracle解決方案
LOGON TRIGGER ON SCHEMA
,使會議在其跟蹤。運行應用程序並分析跟蹤文件,然後v$SQL_PLAN
視圖的內容並檢查查詢的真實執行計劃。如果你堅持要從Eclipse鏈接開始,那麼你必須以某種方式啓動事務,以避免將會話返回到池中。查詢v$mystat
和v$session
得到SID
,SERIAL#
(以獲得唯一的會話標識符)。然後執行你的查詢。並且從v$session
獲得SQL_ID
和PREV_SQL_ID
。檢查v$sql_plan
和v$sql_text
以獲取查詢sql文本和exec計劃。