[pgsql-jp: 30262] Re: VACUUMされない?

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 6月 29日 (日) 14:57:57 JST


  杉田です。

From: 小野 心 <shin-ono @ mdsnet.co.jp>
Subject: [pgsql-jp: 30261] Re: VACUUMされない?
Date: Sun, 29 Jun 2003 14:32:43 +0900

;;;  作業ごとにディレクトリーのサイズを測定したところを以下となりました。
;;; 
;;; +--------------------------+------------------------+------------------------+
;;; |                          |     du -sk $PGDATA     | du -sk $PGDATA/pg_xlog | 
;;; +--------------------------+------------------------+------------------------+
;;; | テスト開始前             |           861,456Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; | データ書き込み後         |         1,418,004Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; | データ削除後             |         1,418,004Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; | VACUME後                 |         1,417,820Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; | テーブル削除後           |           861,500Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; | テーブル削除後のVACUME後 |           861,500Kbyte |           114,832Kbyte |
;;; +--------------------------+------------------------+------------------------+
;;; 
;;;  結果としては、$PGDATA/pg_xlogの変化は無い様です。

  ランダムな内容のテキストでなく同じ内容のテキストです。データ削除後の VACUUM 
でほぼ元に戻りました。

    ====  DROP TABLE、VACUUM 後  ====
    psql -c "DROP TABLE StatementTest"
    DROP TABLE
    vacuumdb -f -a
    Vacuuming sugita
    VACUUM
    Vacuuming template1
    VACUUM
    du -sk $PGDATA
    125556  /opt/pgsql/7.3.3/data
    du $PGDATA/pg_xlog
    114688  /opt/pgsql/7.3.3/data/pg_xlog

    ====  CREATE TABLE、2KB の文字列を 20 万投入 (ランダムな内容ではない)  ====
    psql -c 'CREATE TABLE StatementTest ( data character( 2048 ))'
    CREATE TABLE
    psql -c "INSERT INTO StatementTest SELECT rpad('a', 2000, 'b') FROM (SELECT iterate (200000)) AS i"
    INSERT 0 200000
    du -sk $PGDATA
    139792  /opt/pgsql/7.3.3/data
    du $PGDATA/pg_xlog
    114688  /opt/pgsql/7.3.3/data/pg_xlog

    =====  DELETE 後  ====
    psql -c 'DELETE FROM StatementTest'
    DELETE 200000
    du -sk $PGDATA
    139792  /opt/pgsql/7.3.3/data
    du $PGDATA/pg_xlog
    114688  /opt/pgsql/7.3.3/data/pg_xlog

    ====  VACUUM 後  ====
    vacuumdb -f -a
    Vacuuming sugita
    VACUUM
    Vacuuming template1
    VACUUM
    du -sk $PGDATA
    125564  /opt/pgsql/7.3.3/data
    du $PGDATA/pg_xlog
    114688  /opt/pgsql/7.3.3/data/pg_xlog


Kenji Sugita                                      




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