[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-VACUUM
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 22:16:33)
VACUUM
名稱
VACUUM  清理和分析 Postgres 數據庫 

語法
VACUUM [ VERBOSE ] [ ANALYZE ] [ table ]
VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
輸入
VERBOSE 
為每個表打印一份詳細的清理工作報告. 
ANALYZE 
更新用優化器的列/字段統計信息,以決定執行查詢的最有效方法.這些統計信息反映了每列/字段裡的數據的支出.當(查詢有)多條執行路徑的可能時,這些信息就是非常珍貴的. 
table 
要清理的表的名稱.缺省時是所有表. 
column 
要分析的具體的列/字段名稱.缺省是所有列/字段. 

輸出
VACUUM 
命令被接受並且數據庫被清理了. 
NOTICE: --Relation table-- 
表 table 的報告頭. 
NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0; Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188; Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74. Elapsed 0/0 sec. 
表 table 自身的分析. 
NOTICE: Index index: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec. 
目標表的索引的分析. 

描述
VACUUM 在 Postgres 裡有兩個用途,一個是重新整理存儲區,另一個是為優化器收集信息. 
VACUUM 打開數據庫中每個表,將回卷的事務的記錄清除,並且更新系統目錄裡的統計信息.(數據庫)維護的統計信息包括記錄條數和所有表使用的存儲頁面數. 

VACUUM ANALYZE 收集代表每一行數據的開銷的統計信息.當存在多個可能的執行路徑時,這些信息是非常珍貴的. 
  

定期地運行 VACUUM 可以提高數據庫處理用戶查詢的速度. 

注意
打開的數據庫是 VACUUM 的目標. 
我們建議在每天夜間清理生產數據庫,以保証統計數據足夠新.不過,VACUUM 查詢可以在任何時候進行.尤其是在向 Postgres 中拷貝了一個大表或刪除了大量記錄,執行一個 VACUUM ANALYZE 查詢是一個很好的習慣.這樣做將更新系統目錄為最近的更改,並且允許 Postgres 查詢優化器在規劃用戶查詢時有更好的選擇.

用法
下面是一個在 regression (回歸)數據庫裡某個表上執行 VACUUM 的一個例子: 
regression=> vacuum verbose analyze onek;
NOTICE:  --Relation onek--
NOTICE:  Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
         Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188;
         Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74.
         Elapsed 0/0 sec.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique2: Pages 19; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique1: Pages 17; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Rel onek: Pages: 98 --> 25; Tuple(s) moved: 1000. Elapsed 0/1 sec.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique2: Pages 19; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique1: Pages 17; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
VACUUM
兼容性
SQL92
在 SQL92 裡沒有 VACUUM 語句. 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-VACUUM (2001-04-21 22:16:33)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-UPDATE (2001-04-21 22:16:12)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-UNLISTEN (2001-04-21 22:15:44)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-TRUNCATE (2001-04-21 22:15:24)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-SHOW (2001-04-21 22:15:01)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-SET (2001-04-21 22:14:42)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-SELECT INTO (2001-04-21 22:14:19)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-SELECT (2001-04-21 22:14:01)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-ROLLBACK (2001-04-21 22:13:41)
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-REVOKE (2001-04-21 22:13:18)

===更多相關===
 

★  樊強制作 歡迎分享  ★