0

JdbcTemplate.execute() を使用して実行する多くのステートメントを含む SQL スクリプトがあります。一部のクエリは低速であり、スクリプト全体の進行状況をログに書き込みたいと考えています。

現状では、すべてのステートメントが完了するとログが書き込まれます。

4

1 に答える 1

1

欲しいものを手に入れる方法は他にもあります。PostgreSQL サーバー ログを使用します。構成ファイルでオプションを設定してpostgresql.confリロードするか、次のようにセッションごとにパラメーターを設定します。

すべての単一の SQL ステートメントをログに記録します。

set log_statement = 'all';

または、特に遅いクエリを探します。たとえば、1000 ミリ秒以上かかるものすべてを探します。

set log_min_duration_statement = 1000;

logging-parametersに関するマニュアル:

log_statement (列挙型)

ログに記録する SQL ステートメントを制御します。有効な値は、none (オフ)、ddl、mod、および all (すべてのステートメント) です。

すべてをログに記録する場合は、後でオフにすることを忘れないでください。そうしないと、ログ ファイルが巨大になる可能性があります。

log_min_duration_statement (整数)

ステートメントが指定されたミリ秒数以上実行された場合、完了した各ステートメントの期間がログに記録されます。これをゼロに設定すると、すべてのステートメント期間が出力されます。(...)

パラメータ設定方法のマニュアルです。

于 2011-10-23T10:03:19.470 に答える