2011-11-25 68 views
8

可能重複:
Oracle: is there a tool to trace queries, like Profiler for sql server?如何跟蹤從應用服務器提交給Oracle DB的所有查詢?

我使用JDBC來談談甲骨文。是否有任何方法或外部工具可以跟蹤在一次會話期間從應用服務器提交給Oracle DB服務器的所有SQL查詢?這應該是非常好的調試/錯誤跟蹤工具。

+1

要被清除casperOne:你爲什麼認爲這確實是重複的。我只是無法理解。我的問題主要集中在如何跟蹤客戶端提交的所有SQL查詢。所以我希望在一個明確的時間段內有一個SQL查詢列表。但你指出這個問題的鏈接是重複的,主要集中在如何獲得查詢計劃或針對特定查詢。 –

回答

2
+0

謝謝,只是看看這個工具需要嵌入到應用代碼中,你是否有一個完全脫離應用程序框的工具 –

+0

@ user872501不,我沒有。你可以考慮AVD的建議,看看它是否適合你的需求 – aldrin

4

您可以試試JProfiler。它的JDBC探頭顯示您在事件的所有SQL語句查看:

enter image description here

它適用於所有的JDBC驅動程序,包括Oracle的。此外,探測器的熱點視圖對於確定哪些查詢大部分時間都很有用。

免責聲明:我公司開發的JProfiler

+0

太好了,謝謝你和你的團隊,我需要爲這個軟件購買嗎? –

+0

@ user872501如果您想在評估期過後繼續使用它,則必須購買許可證。 –

+0

我只是試過這個......你看不到實際參數通過,但你可以嗎?我想查看所有正在運行的實際查詢。 –

1

您可以檢查V $ SQLAREA視圖看到的一切發送到服務器的連接:

select sql_fulltext, 
     executions, 
     buffer_gets, 
     rows_processed, 
     elapsed_time, 
     first_load_time, 
     last_active_time 
from v$sqlarea 
where parsing_schema_name = 'YOUR_DB_USERNAME' 

該視圖還包含有關stament是否經常因信息執行和其他有趣的信息,可能有助於追蹤性能問題。

注意的信息基本上是一個緩存 - 這樣的語句可能會從全球區域在一個非常繁忙的系統(這意味着有是,你真的不看所有陳述的機會)