前のトピック: 不適切に記述された SQL ステートメントがメトリック増加を引き起こす仕組み次のトピック: 例: 一時表または自動的に生成された表名


例: SQL ステートメントのコメント

SQL ステートメント内でのコメントの使用は、メトリックが急増する一般的な原因の 1 つです。 たとえば、以下のような SQL ステートメントがある場合、

"/* John Doe, user ID=?, txn=? */ select * from table..."

SQL エージェントは、以下のように、メトリック名の一部としてコメントを使用したメトリックを作成します。

"/* John Doe, user ID=?, txn=? */ select * from table..."

SQL ステートメントに埋め込まれているコメントは、誰がどのクエリを実行しているのかをデータベース管理者が確認するのに役立ちますが、クエリを実行しているデータベースはそのコメントを無視します。 一方で、SQL エージェントは、SQL ステートメントをキャプチャしても、そのコメント文字列を解析しません。 そのために、SQL エージェントは、一意なユーザ ID ごとに独自のメトリックを作成し、メトリック増加を引き起こす原因となります。

この問題は、SQL コメントを一重の引用符で囲むことで回避することができます。 例:

"/*' John Doe, user ID=?, txn=? '*/ select * from table..."

すると SQL エージェントは、以下のようなメトリックを作成し、コメントによって一意のメトリック名が作成されなくなります。

"/* ? */ select * from table..."