[pgsql-jp: 29770] Re: vacuumdb のオプション(--analzye, --full)の運用時の使い方

ISHIDA Akio iakio @ pjam.jpweb.net
2003年 5月 1日 (木) 18:47:44 JST


こんにちは。石田@苫小牧市です。

HOTTA Michihide <hotta @ net-newbie.com> wrote:
(2003/05/01 11:47)

> 堀田です。
> 
> From: "kinosita" <kino @ deneb.jp>
> Subject: [pgsql-jp: 29736] vacuumdb のオプション(--analzye, --full)の運用時の使い方
> Date: 2003/04/28 16:45:05
> 
> > 仮に、DBNAME というデータベースに、TABLE_A, TABLE_B, TABLE_C
> >  というテーブルがあるとします。
> > このデータベースに対して、vacuumdb をかけ、オプションに--full と
> > --analyze をかけるつもりでいます。
> > 
> > ここで、
> > ・クライアントPCからのリクエストに対する応答速度を最も早くする
> >   ことを最大優先課題とする。
> > ・CPU の使用率や、計算時間は考慮しない。
> > という目的があった場合、下記の (1)〜(3)のどれが最も適しているの
> > でしょうか?
> 
> 識者ではないので質問には答えられませんが、一般的には、どの方法が
> 一番速い(早い)かという問題は、データベースの使い方や環境に左右
> される面が大きいと思われるので、まず「やってみる」ことが先決では
> ないでしょうか。
> 
> そして、何か自分の予想と異なった結果が出たら、そのことについて質
> 問してみるとよいかと思います。ただし、その際も出せる限りの情報を
> 出さないと、フォローがつくのはやはり難しいかもしれません。

vaccum 自体が速く終了することも大切かもしれませんが、
vaccum が適切なタイミングで行なわれることも重要です。
そのタイミングも、データベースにどのようなデータが
格納されるかに左右されるので、やはり「やってみる」ことでしか
良い解はえられないでしょう。

一般的には、--analyze も --full もつけない vacuum を
頻繁に行ない、--analyze や --full はたまに行なうようです。

contrib/pgstattuple を定期的に実行して、
tuple_percent が極端に減ってしまわないタイミングで vacuum 
を行なうのが良いでしょう。
以前は 1 時間に 1 度 vacuum するという例もありました。
場合によってやもっとやっても良いと思います。

vacuum の定期的な実行によってテーブルのサイズが増えてしまうの
をうまく防止できれば、結果として --analyze や --full の
実行速度も速くなるはずです。

--
ISHIDA Akio<iakio @ pjam.jpweb.net>




pgsql-jp メーリングリストの案内