[pgsql-jp: 36404] pgbench開始前のvacuum

Satoshi Nagayasu nagayasus @ nttdata.co.jp
2005年 11月 16日 (水) 15:16:07 JST


永安です。

pgbenchを繰り返してかけていたのですが、
pgbenchが始まる前のvacuum処理でacocuntsテーブルだけ
vacuumされていないことに気付きました(オプション無しの時)。

-vオプションを指定すると、accountsもvacuum analyze fullされる
ようですが、オプションを指定しないとvacuumされません(concurrentも)。

-------------------------------------------------------
                res = PQexec(con, "vacuum history");
                if (PQresultStatus(res) != PGRES_COMMAND_OK)
                {
                        fprintf(stderr, "%s", PQerrorMessage(con));
                        exit(1);
                }
                PQclear(res);

                fprintf(stderr, "end.\n");

                if (is_full_vacuum)
                {
                        fprintf(stderr, "starting full vacuum...");
                        res = PQexec(con, "vacuum analyze accounts");
                        if (PQresultStatus(res) != PGRES_COMMAND_OK)
                        {
                                fprintf(stderr, "%s", PQerrorMessage(con));
                                exit(1);
                        }
                        PQclear(res);
                        fprintf(stderr, "end.\n");
                }
        }
        PQfinish(con);
-------------------------------------------------------

pgbenchを繰り返しているとaccountsだけがどんどん肥大していくのですが、
なぜaccountsだけconcurrent vacuumの対象外になっているのか、
理由をご存知の方はおられますでしょうか?

どなたかご存知でしたら教えていただけると助かります。

よろしくお願いします。
-- 
NAGAYASU Satoshi <nagayasus @ nttdata.co.jp>



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