Home > スポンサー広告 > PostgreSQL チューニング

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://netforestdevnote.blog26.fc2.com/tb.php/30-a3819a84
Listed below are links to weblogs that reference
スポンサーサイト from Netforest Developer's Note

Home > スポンサー広告 > PostgreSQL チューニング

Home > データベース > PostgreSQL チューニング

PostgreSQL チューニング

こんにちは。mattyです。
distinct を使用して遅くなっている、我慢ならないSQLのチューニングのメモ書きです。
データベースはPostgreSQL(8.4.1)です。

PostgreSQL8.4の新機能 によると、 8.4からはDISTINCT も気軽に使っていける(group by に置き換えなくてもいい)そうなので、group by 置き換え以外のチューニング方法を調べてみたところ、postgresql.confの「work_mem」の値を変えるのが有効らしいと判りました。(work_memの詳細)


まず現在のwork_memの値を表示させてみると(psql起動)
show work_mem
の実行で「1MB」と表示されました。

この状態で
EXPLAIN SELECT ・・・
と問題のSQLのコストを計測したところ、処理に13秒かかっていました。。

そこで!postgresql.conf には反映されませんが
set work_mem = '32MB'
と一時的に設定を変えてみて同じくコスト計測したところ、、、なんと処理時間は半分になりました!
しかし半分にはなりましたが6秒もかかっているのでまだ我慢なりません。

上限があるらしく値を「32MB」以上に大きく取ってもそれ以上の効果がありませんでした。

この方法で我慢できる処理時間になればいいと思いましたが、、
SQLを再検討したほうが手っ取り早そうなので結局SQLを2分割して解決させました。
ただwork_memの設定は今回の問題解決には至りませんでしたが 好影響をもたらしたので本採用したいと思います。

Comments:0

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://netforestdevnote.blog26.fc2.com/tb.php/30-a3819a84
Listed below are links to weblogs that reference
PostgreSQL チューニング from Netforest Developer's Note

Home > データベース > PostgreSQL チューニング

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。