- PR -

PostgreSQLでのSQLトレース取得方法について

1
投稿者投稿内容
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2006-06-07 19:36
PostgreSQLでSQLトレースを取得したいのですが、色々探したものの、なかなか
見つかりません。ググったところ、参照URLの記事は見つけたのですが、うまくいかず…

何かいい方法がありましたら、ご教授いただきたいと思います。

環境は
OS:Linux
DB:PostgreSQL 7.4.12

です。よろしくお願いいたします。
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-06-07 21:29
私は使ったことがありませんが、Postgresqlの説明文章に使えそうなオプションが記載されています。

http://www.postgresql.jp/document/pg746doc/html/runtime-config.html#RUNTIME-CONFIG-LOGGING

log_min_duration_statement
log_statement

--
よく見たら、参考URLでも同じオプションを紹介していたのですね。
これが使えないなら分かりません。

--
手元のPostgreSQL 8.0.6で log_min_duration_statement = 0 の設定で試したところ
下記の形でログファイルに出力されていました。
他にもツールやACCESSの管理用問い合わせが大量に出力されていて見づらいですが。

(PgAdminVのクエリツールでの問い合わせ)
2006-06-07 21:36:14 LOG: duration: 0.000 ms statement: SELECT * FROM t_mmenu;

(ODBC経由のACCESSからの問い合わせ)
2006-06-07 21:40:22 LOG: duration: 0.000 ms statement: SELECT "public"."t_mmenu"."menuid" FROM "public"."t_mmenu"


[ メッセージ編集済み 編集者: 鎌田 編集日時 2006-06-07 21:32 ]

[ メッセージ編集済み 編集者: 鎌田 編集日時 2006-06-07 21:44 ]
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-06-07 21:45
引用:

トムさんの書き込み (2006-06-07 19:36) より:
PostgreSQLでSQLトレースを取得したいのですが、色々探したものの、なかなか
見つかりません。ググったところ、参照URLの記事は見つけたのですが、うまくいかず…



うまくいかず、の理由が「自分の想定した通りの出力が得られない」のか「そもそも出力されない」のか
さっぱりわからないので何とも。

うまくいかない原因の解消を考えた方がよろしいのではないですかね。
Piro
常連さん
会議室デビュー日: 2006/03/28
投稿数: 31
投稿日時: 2006-06-08 09:06
鎌田さん、せんさん、ご返信ありがとうございます。

引用:

うまくいかず、の理由が「自分の想定した通りの出力が得られない」のか「そもそも出力されない」のか
さっぱりわからないので何とも。

うまくいかない原因の解消を考えた方がよろしいのではないですかね。



おっしゃること、ごもっともです。。。
「そもそも出力されない」というところです。参照元のURLやっても出力されません。
よくよく見てみると、これはpgbenchで発行しているSQLが出力されているようで。。。

アプリ側がログ出力するのではなく、DBMSとして発行されてきているSQLをログに出したいというのがやりたいことなのですが。。。

鎌田さんの方法を手本に行なってみたいと思います。
もし他にいい案などありましたら、よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)