Provided by: manpages-zh_1.5-1_all bug

NAME

       VACUUM - 垃圾收集以及可選地分析一蚍畬w

SYNOPSIS

       VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
       VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]

DESCRIPTIONyz
       VACUUM   回收已刪除元組佔據的存儲空間。  在一般的  PostgreSQL  操作裏,
       那些已經   DELETE   的元組或者被    UPDATE    過後過時的元組是沒有從它-
       怍痁搌漯矰云垓z刪除的;   在完成   VACUUM   之前它怳斯M存在。   因此我-
       怞野眸楨P期地運行 VACUUM, 特別是在常更新的表上。

        如果沒有參數,VACUUM    處理當前數據庫裏每茠瞴A     如果有參數,VACUUM
       只處理那茠瞴C

       VACUUM  ANALYZE  先執行一 VACUUM  然後是給每蚇鴭w的表執行一 ANALYZE。
       對於日常維護稿本而言,這是一茷雂隢K的組合。參閱  ANALYZE   [analyze(7)]
       獲取更多有關其處理的細節。

        簡單的                       VACUUM                       (沒有FULL)
       只是簡單地回收空間並且令其可以再次使用。這種形式的命令可以和對表的普通讀寫並行操作,
       因為沒有請求排他鎖。VACUUM                                         FULL
       執行更廣泛的處理,包括跨塊移動元組,以便把表壓縮到最少的磁碟塊數目裏。
       這種形式n慢許多並且在處理的時堇愯在表上施加一荓汕瞗C

       FREEZE   是一種特殊用途的選項,它導P元組盡可能快地標記為"廘(frozen)",
       而不是等到它怳w經相當老的時啎~標記。如果在同一-
       蚍畬w上沒有其它運行著的事務的時唭髡迅o茤R令,
       那麼系統就保証在數據庫裏的所有元組都是"廘(frozen)"的,  因此不會有事務
       ID   宣|的問題,而和數據庫未清理的時間沒有關系。   我怳ㄚ媊釦   FREEZE
       用做日常用途。我怚峊扛滌艉@目地是準備和使用者定義的模板數據庫聯接的時-
       唌A  或者是其它完全是只讀的,  不會等到日常維護性 VACUUM 操作的數據庫。
       參閱 Chapter 21 ``Routine Database Maintenance'' 獲取細節。

PARAMETERS數
       FULL                           選擇"完全"清理,這樣可以恢復更多的空間,
              但是花的時間更多並且在表上施加了排它鎖。

       FREEZE  選擇激進的元組"廘"。

       VERBOSE
               為每茠磽C印一份詳細的清理工作報告。

       ANALYZE
               更新用於優化器的統p信息,以決定執行查詢的最有效方法。

       table                                      n清理的表的名稱(可以有模式-
              袡╮^。預設時是當前數據庫中的所有表。

       column  n分析的具體的列/字段名稱。預設是所有列/字段。

OUTPUTSX
        如果聲明了   VERBOSE,VACUUM   發出過程信息,    以表明當前正在處理那-
       茠瞴C各種有關這些表的統p也會列印出來。

NOTES`N
        我怮媊釵b經常VACUUMM(清理)(至少每晚一次)生產數據庫,
       以保証不斷地刪除失效的行。尤其是在增刪了大量記錄之後, 對受影響的表執行
       VACUUM                        ANALYZE                         命令是一-
       茷雃n的習慣。這樣做將更新系統目錄為最近的更改,並且允許      PostgreSQL
       查詢優化器在規劃使用者查詢時有更好的選擇。

        我怳ㄚ媊酗敼`使用     FULL     選項,但是可以在特殊情況下使用。    一-
       茖狺l就是在你刪除了一-
       茠磲漱j部分行之後,希望從物理上縮小該表以減少磁碟空間佔用。VACUUM  FULL
       通常n比單純的 VACUUM 收縮更多表的尺寸。

EXAMPLESl
        下惇O一茼b regression (蛻變)數據庫裏某茠矰W執行 VACUUM的一茖狺l:

       regression=# VACUUM VERBOSE ANALYZE onek;
       INFO:  vacuuming "public.onek"
       INFO:  index "onek_unique1" now contains 1000 tuples in 14 pages
       DETAIL:  3000 index tuples were removed.
       0 index pages have been deleted, 0 are currently reusable.
       CPU 0.01s/0.08u sec elapsed 0.18 sec.
       INFO:  index "onek_unique2" now contains 1000 tuples in 16 pages
       DETAIL:  3000 index tuples were removed.
       0 index pages have been deleted, 0 are currently reusable.
       CPU 0.00s/0.07u sec elapsed 0.23 sec.
       INFO:  index "onek_hundred" now contains 1000 tuples in 13 pages
       DETAIL:  3000 index tuples were removed.
       0 index pages have been deleted, 0 are currently reusable.
       CPU 0.01s/0.08u sec elapsed 0.17 sec.
       INFO:  index "onek_stringu1" now contains 1000 tuples in 48 pages
       DETAIL:  3000 index tuples were removed.
       0 index pages have been deleted, 0 are currently reusable.
       CPU 0.01s/0.09u sec elapsed 0.59 sec.
       INFO:  "onek": removed 3000 tuples in 108 pages
       DETAIL:  CPU 0.01s/0.06u sec elapsed 0.07 sec.
       INFO:  "onek": found 3000 removable, 1000 nonremovable tuples in 143 pages
       DETAIL:  0 dead tuples cannot be removed yet.
       There were 0 unused item pointers.
       0 pages are entirely empty.
       CPU 0.07s/0.39u sec elapsed 1.56 sec.
       INFO:  analyzing "public.onek"
       INFO:  "onek": 36 pages, 1000 rows sampled, 1000 estimated total rows
       VACUUM

COMPATIBILITYe性
       SQL 標準裏沒有 VACUUM 語句。

SEE ALSO見
       vacuumdb [vacuumdb(1)]

者
       Postgresql  <laser@pgsqldb.org>