アプリ版:「スタンプのみでお礼する」機能のリリースについて

PostgreSQLを使ったデータベースシステムがあります。
4年前から稼動しています。
最近DBの更新処理の速度が低下したので原因を調べています。

バキュームを実行後、630件のレコードを更新するのに約60秒かかりました。
全データをバックアップし、データベースを新しく設定してリストアし、
同じ処理を行ったところ、約15秒(4分の1)に短縮されました。

処理速度低下の原因として考えられることはどんなことがあるでしょうか?
また、処理速度の低下を防ぐ方法はどのようにすればいいのでしょうか?

よろしくご教授ください。

A 回答 (2件)

LINUXにデフラグはありません。


Postgresは追記型なので、Updateを繰り返すと、ファイルがディスク内で細切れになり、遅くなります。
バキュームはホールを無くしてくれますが、細切れになったファイルはそのままです。
遅くなったら、バックアップ後、mkfs.ext3でファイルシステムを作り直して、リストアするしかないですね。
http://www.linuxlic.com/command/mkfs.html
それが嫌だったら、ホールを再利用するOracleに乗り換えた方がいいですね。
    • good
    • 0
この回答へのお礼

ご教授ありがとうございます。

PostgreSQLを使っているかぎり、Vacuum処理やReIndex処理
を行っても、断片化を防ぐことは出来ないということですね。

処理速度が低下してきた場合に、DBのバックアップ取得、全データ削除、リストアを行うことを考えたいと思います。

お礼日時:2010/11/24 11:34

ファイル領域の断片化が発生しているのではないでしょうか。


解消するためのコマンドが各DBMSで用意されていると思いますので、調べてみて下さい。
    • good
    • 0
この回答へのお礼

早速のご教授、ありがとうございます。

ファイル領域の断片化であるとすると、
Windowsの「デフラグ」に相当する処理を実行するのですね。

PostgreSQLのコマンドを調べてみます。

お礼日時:2010/11/11 01:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す