[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 メーリングリストの案内