コールグラフのSQLクエリ exit コール

多くの場合、アプリケーションコードはデータベースコールを複数のフェーズで実行します。例:

  • SQL クエリを構築し実行します。
  • 結果セットを反復します。

例:

stmt = con.createStatement();
# Execute the query
ResultSet rs = stmt.executeQuery(query);
# Iterate through the results
while (rs.next()) {
String PizzaType = rs.getString("PIZZA_TYPE");
float price = rs.getFLoat("PRICE");
}

Java エージェントは、コールグラフ内の結果セットの表示で、JDBC SQL クエリの実行と繰り返しを別々に表します。

  • 実行コールについては、コールグラフにSQLクエリと実行時間が表示されます。[External Call] 列のデータベースリンクから exit コールの詳細にアクセスできます。
  • 結果セットの反復については、反復の回数のカウントと合計時間が表示されます。[External Call] 列の結果セット反復リンクから exit コールの詳細にアクセスできます。

.NETエージェントの場合、コールグラフ内では結果セットに対するADO.NET SQLクエリ実行の exit コールと繰り返しは別々に表示されません。

PythonエージェントとNode.jsエージェントでは、コールに使用されるデータベースドライバに基づいて、反復を別の exit コールとして区別することがあります。

注: Splunk AppDynamics は、すべてのデータベースコールを常に別々の exit コールとして表すわけではありません。そのため、コールグラフに表示される実際の exit コールよりもデータベースコールの回数が多く表示される可能性があります。

SQLコールの最小キャプチャしきい値の時間

クエリと結果セットの反復の両方に、SQL コールの最小キャプチャしきい値時間があります(デフォルトは 10 ミリ秒)。クエリまたは結果セットの反復の実行時間がしきい値を超えない場合は、コールグラフに表示されません。これは以下のいずれかの場合に、オペレーションのどの部分が 10 ミリ秒以上かかるかによって、与えられたデータベース反復のコールグラフにおける表示方法が変わることを意味しています。

  • クエリのみが表示される(コールアウト 1)
  • 結果セットの反復のみが表示される(コールアウト 2)
  • 両方とも表示される(コールアウト 3)
キャプチャしきい値時間

リンクをクリックすると、SQL exit コールまたは結果セット反復の詳細を確認できます。

スナップショットにおける SQL クエリの最大数

デフォルトでは、スナップショット内の SQL クエリの最大数は、500 に設定されています。Java エージェントでは、想定どおりの SQL クエリがコールグラフに表示されない場合、max-jdbc-calls-per-snapshot ノードプロパティの値を増やすことができます。