vacuumdb
名稱
vacuumdb ― 清理和分析一個 Postgres 數據庫
語法
vacuumdb [ options ] [ --analyze | -z ]
[ --alldb | -a ] [ --verbose | -v ]
[ --table 'table [ ( column [,...] ) ]' ] [ [-d] dbname ]
輸入
vacuumdb 接受下列命令行參數:
-d dbname, --dbname dbname
聲明要被清理或分析的數據庫名稱?!?
-z, --analyze
計算用于優化器的該數據庫的統計值?!?
-a, --alldb
清理所有數據庫?!?
-v, --verbose
在處理過程中打印詳細信息。
-t table [ (column [,...]) ], --table table [ (column [,...]) ]
只是清理或分析 table。列名稱只是在與--analyze 選項聯合使用時才需要聲明。
小技巧:如果你聲明了要清理的列,你可能不得不在 shell 上轉意圓括號。
vacuumdb 還接受下面的命令行參數用于聯接參數:
-h host, --host host
聲明 postmaster 運行的機器的主機名.
-p port, --port port
聲明 postmaster 在偵聽聯接的TCP/IP 端口號或一個本地的Unix主控套接字文件句柄.
-U username, --username username
進行聯接的用戶名?!?
-W, --password
強制口令提示符?!?
-e, --echo
回顯 vacuumdb 生成的查詢并且把它發送到后端?!?
-q, --quiet
不顯示響應。
輸出
VACUUM
一切正常?!?
vacuumdb: Vacuum failed.
出差錯了。vacuumdb 只是一個腳本的封裝。參閱 VACUUM 和 psql 獲取關于錯誤信息和可能問題的詳細描述。
描述
vacuumdb 是一個用于整理 PostgreSQL 數據庫的工具。vacuumdb 還將會生成用于 Postgres 查詢優化器的內部統計數據。
vacuumdb 是一個 shell 腳本,通過 PostgreSQL 交互終端 psql 封裝了SQL 命令 VACUUM 。因此,用那種方法清理數據庫都沒什么特別的。這意味著psql 必須能被腳本找到并且有一個數據庫服務器在目標主機上運行。同樣,任何psql 和 libpq 前端庫可獲得的缺省設置和環境變量都將生效。
用法
整理數據庫 test:
$ vacuumdb test
為優化器分析一個名為 bigdb 的數據庫:
$ vacuumdb --analyze bigdb
為優化器分析數據庫 xyzzy 里表 foo 里面的列 bar:
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy