3

pg_query_params()PHP から PostgreSQL データベースにクエリを実行するためによく使用します。ただし、postgres ログを分析すると、クエリは次のように記録されます。

SELECT
    email_address
FROM
    user u
WHERE
    user_id = $1
    AND user_mode = $2
LIMIT $3;

実際の値ではなく、配列のプレースホルダーのみを使用します。私たちの PHP アプリケーションは配列を返すエラーをログに記録できますが、トラブル クエリのパラメーターを直接追跡できれば、チューニングのプロセスははるかに簡単になります。

PostgreSQL 9.2.4 の内部でこれを行う方法はありますか?

4

1 に答える 1

2

設定log_statement = allすると、パラメータは別の行のログに記録されます。セッション pid を含むa を設定するlog_line_prefixと、ステートメント テキストをパラメーターに関連付けることができることを確認するのに役立つ場合があります。

パラメータをインラインでクエリ テキストに代入する機能はありません。クエリ パラメータを代用すると、ログ分析ツールが異なるパラメータを使用した同じステートメントの複数回の実行に関する統計を収集することがはるかに難しくなるため、これは意識的に回避されます。

両方を行うための便利な方法、または「params がサブされたステートメントを見たい」と言う方法があればいいのですが....しかし、ありません。

于 2013-06-04T00:13:39.813 に答える