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

NAME

       VACUUM - 垃圾收集以及可選地分析一個數據庫

SYNOPSIS

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

DESCRIPTION 描述

       VACUUM 回收已刪除元組佔據的儲存空間。 在一般的 PostgreSQL 操作裡, 那些已經 DELETE 的元組或者被 UPDATE 過
       後過時的元組是沒有從它們所屬的表中物理刪除的;  在完成 VACUUM 之前它們仍然存在。 因此我們有必須週期地執行
       VACUUM, 特別是在常更新的表上。

        如果沒有引數,VACUUM 處理當前資料庫裡每個表, 如果有引數,VACUUM 只處理那個表。

       VACUUM ANALYZE 先執行一個 VACUUM  然後是給每個選定的表執行一個 ANALYZE。 對於日常維護指令碼而言,這是一個
       很方便的組合。參閱 ANALYZE [analyze(7)] 獲取更多有關其處理的細節。

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

       FREEZE 是一種特殊用途的選項,它導致元組儘可能快地標記為"凍結(frozen)",  而不是等到它們已經相當老的時候才
       標記。如果在同一個資料庫上沒有其它執行著的事務的時候完成這個命令,   那麼系統就保證在資料庫裡的所有元組都
       是"凍結(frozen)"的, 因此不會有事務 ID 重疊的問題,而和資料庫未清理的時間沒有關係。  我們不建議把  FREEZE
       用做日常用途。我們用它的唯一目地是準備和使用者定義的模板資料庫聯接的時候,  或者是其它完全是隻讀的, 不會
       等到日常維護性 VACUUM 操作的資料庫。 參閱 Chapter 21 ``Routine Database Maintenance'' 獲取細節。

PARAMETERS 引數

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

       FREEZE
               選擇激進的元組"凍結"。

       VERBOSE
               為每個表列印一份詳細的清理工作報告。

       ANALYZE
               更新用於最佳化器的統計資訊,以決定執行查詢的最有效方法。

       table
               要清理的表的名稱(可以有模式修飾)。預設時是當前資料庫中的所有表。

       column
               要分析的具體的列/欄位名稱。預設是所有列/欄位。

OUTPUTS 輸出

        如果聲明瞭 VERBOSE,VACUUM 發出過程資訊, 以表明當前正在處理那個表。各種有關這些表的統計也會打印出來。

NOTES 注意

        我們建議在經常VACUUMM(清理)(至少每晚一次)生產資料庫, 以保證不斷地刪除失效的行。尤其是在增刪了大量記
       錄之後, 對受影響的表執行 VACUUM ANALYZE   命令是一個很好的習慣。這樣做將更新系統目錄為最近的更改,並且允
       許 PostgreSQL  查詢最佳化器在規劃使用者查詢時有更好的選擇。

        我們不建議日常使用  FULL 選項,但是可以在特殊情況下使用。 一個例子就是在你刪除了一個表的大部分行之後,希
       望從物理上縮小該表以減少磁碟空間佔用。VACUUM FULL  通常要比單純的 VACUUM 收縮更多表的尺寸。

EXAMPLES 例子

        下面是一個在 regression (蛻變)資料庫裡某個表上執行 VACUUM的一個例子:

       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

COMPATIBILITY 相容性

       SQL 標準裡沒有 VACUUM 語句。

SEE ALSO 參見

       vacuumdb [vacuumdb(1)]

譯者

       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

SQL - Language Statements                          2003-11-02                                          VACUUM(7)