どのようにアプリケーションサーバーからOracle DBに提出されたすべてのクエリを追跡するには?

可能重複:
  Oracle:ツールがありますか? Profiler for SQL Serverのようなクエリをトレースするには?

私はOracleと話すためにJDBCを使用しています。 1つのセッション中にアプリケーションサーバーからOracle DBサーバーに送信されたすべてのSQLクエリを追跡できる方法や外部ツールはありますか?これは非常に優れたデバッグ/バグ追跡ツールでなければなりません。

8
あなたはなぜこれが正確な重複だと思ったのですか?私は理解できません。私の質問は主に、クライアントから提出されたすべてのSQLクエリを追跡する方法に焦点を当てています。私はExploraの期間中にSQLクエリのリストが必要です。あなたがこの質問を示したリンクは重複していますが、主にクエリプランを取得する方法や特定のクエリを取得する方法に重点が置かれています。
追加された 著者 C.c,

4 答え

JDBC(JDBCロギングの有効化と使用)ロギング機能を使用できます。

6
追加された

JProfiler を試すことができます。そのJDBCプローブは、すべてのSQL文をイベントビューに表示します。

enter image description here

Oracleを含むすべてのJDBCドライバで動作します。また、プローブのホットスポットビューは、どのクエリがほとんどの時間を取るかを判断するのに役立ちます。

免責事項:私の会社はJProfilerを開発しています

4
追加された
素晴らしい、ありがとう、あなたのチーム、私はこのソフトウェアのための関心を購入する必要がありますか?
追加された 著者 C.c,
私はちょうどこれを試してみました...実際のパラメータが渡されているのを見ることはできますか?私は実行されているすべての実際のクエリを見たいと思う。
追加された 著者 Matt Broekhuis,
@ user872501評価期間後に引き続き使用したい場合は、ライセンスを購入する必要があります。
追加された 著者 Ingo Kegel,
@MattBroekhuisセッション設定を開き、 "JEE&Probes"セクションに移動し、JDBCプローブを選択して "Prepared Statementsのパラメータを解決する"を選択します。
追加された 著者 Ingo Kegel,

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'

このビューには、スタンスが実行された頻度やパフォーマンスの問題を追跡するのに役立つその他の興味深い情報も含まれています。

情報は基本的にキャッシュであることに注意してください。そうすれば、非常にビジーなシステムでは、グローバルエリアからステートメントがクリアされる可能性があります(つまり、すべてのステートメントが実際には表示されない可能性があります)

1
追加された
1
追加された
ありがとう、ちょうど見て、このツールがアプリケーションコードに埋め込まれる必要があるように見える、あなたは完全にアプリケーションボックスからツールを持っていますか
追加された 著者 C.c,
@ user872501いいえ、私はいけない。あなたはAVDの提案を検討し、それがあなたのニーズに合っているかどうかを見ることができます
追加された 著者 aldrin,