Hatena::Grouppostgresql

PostgreSQL 雑記 このページをアンテナに追加 RSSフィード

2009-01-05contrib/pg_stat_statements

contrib/pg_stat_statements が採用されました。Oracle STATSPACK で言うところの「SQL ordered by Elapsed Time」「SQL ordered by Executions」に相当する情報が手軽に集計できます。

残念なのは、設計が良くないということで、CPU 使用率、バッファアクセス、I/O 回数などの集計機能が削られてしまったことです。なので「ordered by Gets / Reads」はできません。次回に EXPLAIN-as-XML なんかと一緒にリベンジですねぇ。

やっぱり Gets / Reads が欲しいとき 23:49  やっぱり Gets / Reads が欲しいとき - PostgreSQL 雑記 を含むブックマーク はてなブックマーク -  やっぱり Gets / Reads が欲しいとき - PostgreSQL 雑記  やっぱり Gets / Reads が欲しいとき - PostgreSQL 雑記 のブックマークコメント

class InstrumentationEx extends Instrumentation { gets; reads; }
// pgss_ExecutorStart()
queryDesc->totaltime = new InstrumentationEx(); // InstrAlloc(1) の代わり
// pgss_ExecutorRun()
queryDesc->totaltime->gets, reads を適当に更新。
// pgss_ExecutorEnd()
pgss_store() に gets, reads も渡す。

のようなことをやれば、同様にこっそり余剰メモリ確保ををするモジュールと競合しない限りは動きそうです。どうしても欲しいと言われたときのためにネタとして覚えておこうかな。