2011-12-21 9 views
19

アプリケーションからデータベースに送信されるクエリを監視したいと思います。そのために、私はpg_stat_activityを見つけましたが、返される行は「トランザクション中」であることがよくあります。私は間違って何かをしている、クエリが通過するのを見るのに十分な速さではない、混乱している、またはすべての上記の!PostgreSQLのクエリをリアルタイムで監視するアプリですか?

誰かがPostgreSQLに対して実行されているクエリを監視するための最も馬鹿にならない方法をお勧めしますか?私は使いやすいUIベースのソリューション(例:SQL Serverの "Profiler")を好むだろうが、あまり好きではない。

答えて

15

を見てみることができます。

は、データベース内の(Ubuntuの上で、それは /usr/share/postgresql/<version>/contribで見つけることができます)こののcontribモジュール pg_stat_statements.sqlのSQLスクリプトを実行し、このサンプルの構成を追加するには、 postgresql.conf(再起動が必要):

custom_variable_classes = 'pg_stat_statements' 
pg_stat_statements.max = 1000 
pg_stat_statements.track = top # top,all,none 
pg_stat_statements.save = off 

を確認するにはリアルタイムで実行されるクエリは、最小限の実行時間ですべてのクエリまたはクエリを表示するようにサーバーログを構成することができます。これを行うには、適切にpostgresql.confのlogging configuration parameterslog_statementlog_min_duration_statementを設定します。

+0

それは良い答えだが、それは1つがあるため、pg_stat_statementsビューからデータを収集する方法をカバーしていません。それは絶えず変化しており、クエリの実行に関する累積統計しかありません。そのためには、https://pganalyze.com/やhttps://okmeter.ioのようなツールを使用して、クエリの実行とパフォーマンスに関するチャートや詳細情報を表示することができます。免責事項 - 私はokmeterのために働いています。 –

0

残念ながら私はそれを試していませんが、pgFouineが統計情報を表示できると思います。

リアルタイムでクエリを表示するのではなく、後でクエリのレポートを生成するようですが、依然として依頼を満たしていると思われますか?

あなたは、データベース・サーバーのクエリ実行統計情報を収集するためにのcontribモジュール を使用することができますPostgreSQLの8.4以降で http://pgfouine.projects.postgresql.org/

22

PgAdminは、サーバ監視

と呼ばれる、かなり使いやすいツールを提供しています([ツール] - > [ServerStatus)

+4

このツールはPgAdmin 4で消えているようです。 – Lasf

+0

@Lasf - 合意しました...なぜこれがなくなったのか? –

関連する問題