最初のスタック・トレースはアプリケーションが SQL ステートメントを定義しているポイントに対応し、第 2 のスタック・トレースはアプリケーションが SQL ステートメントを実行するポイントに対応します。アプリケーションのコードの複数のポイントで 1 つの SQL ステートメントを複数回準備して実行する場合、pureQuery はこれらの複数のポイントでのスタック・トレースをキャプチャーします。
pureQuery が SQL ステートメント用のスタック・トレースを収集する際の収集元アプリケーションの一覧を、次の表に示します。
シナリオ | アプリケーションが SQL ステートメントを定義しているポイントであると pureQuery が判断する際に考慮する要素 | アプリケーションが SQL ステートメントを実行するポイント |
---|---|---|
アプリケーションが prepareStatement API を使用して SQL ステートメントを実行しており、prepareStatement メソッドと execute メソッドがコード内の異なる場所で呼び出されている。 | アプリケーションが prepareStatement() メソッドを呼び出しているコード行 | アプリケーションが execute() メソッドを呼び出しているコード行 |
アプリケーションが prepareStatement API を使用して SQL ステートメントを実行しており、prepareStatement メソッドと execute メソッドが同じ行にある。 | アプリケーションが prepareStatement() メソッドを呼び出しているコード行 | アプリケーションが execute() メソッドを呼び出しているコード行 |
アプリケーションが Statement API を使用して SQL ステートメントを実行している。 | アプリケーションが execute() メソッドを呼び出しているコード行 | アプリケーションが execute() メソッドを呼び出しているコード行 |
アプリケーションが Statement オブジェクトのバッチの一部である SQL ステートメントを実行しており、異種のステートメントが混在している。 | アプリケーションが addBatch メソッドを呼び出しているコード行 | アプリケーションが executeBatch メソッドを呼び出しているコード行 |
アプリケーションが PreparedStatement オブジェクトのバッチの一部である SQL ステートメントを実行している。 | アプリケーションが prepareStatement() メソッドを呼び出しているコード行 | アプリケーションが executeBatch メソッドを呼び出しているコード行 |
アプリケーションが PreparedStatement オブジェクトのバッチの一部である SQL ステートメントを実行しており、異種のステートメントが混在している。 | 各 PreparedStatement オブジェクトに対し、アプリケーションが prepareStatement() メソッドを呼び出しているコード行 | 各 PreparedStatement オブジェクトに対し、アプリケーションが executeBatch メソッドを呼び出しているコード行 |
pureQueryXML ファイル内でスタック・トレースを使用すると、アプリケーションのトラブルシューティングに役立てることができます。pureQuery には、スタック・トレースの内容、数、長さを制御するための 3 つのプロパティーが用意されています。
これらのプロパティーの詳細については、SQL Outline 用の SQL ステートメントのキャプチャーを参照してください。