?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
vacuumdb [connection-option...] [--full | -f] [--freeze | -F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] [--table | -t table [( column [,...] )] ] [dbname]
vacuumdb [connection-option...] [--full | -f] [--freeze | -F] [--verbose | -v] [--analyze | -z] [--analyze-only | -Z] [--all | -a]
vacuumdb是一個用于整理PostgreSQL數(shù)據(jù)庫的工具。 vacuumdb還將會生成用于PostgreSQL查詢優(yōu)化器的 內(nèi)部統(tǒng)計數(shù)據(jù)。
vacuumdb是SQL命令VACUUM的封裝。 通過該實用程序和通過其他方法訪問數(shù)據(jù)庫,清空和分析數(shù)據(jù)庫之間沒有有效的區(qū)別
vacuumdb接受下列命令行參數(shù):
清理所有數(shù)據(jù)庫
聲明要被清理或分析的數(shù)據(jù)庫名稱。 如果沒有聲明這個參數(shù)并且沒有使用-a (或者 --all),那么從將環(huán)境變量PGDATABASE里讀取數(shù)據(jù)庫名。 如果那個也沒有設置,則使用連接的用戶名。
回顯vacuumdb生成并發(fā)送給服務器的命令。
執(zhí)行"完全"清理。
Aggressively "freeze" tuples.
不顯示進度消息。
只是清理或分析table。 字段名稱只是在與--analyze或--analyze-only選項聯(lián)合使用時才需要聲明。
Tip: 如果你聲明了要清理的字段,你可能不得不在shell上逃逸圓括弧(見下面的例子)。
在處理過程中打印詳細信息
打印vacuumdb版本并退出。
也計算用于優(yōu)化器的該數(shù)據(jù)庫的統(tǒng)計值。
僅計算優(yōu)化器要用的統(tǒng)計(無清空)。
顯示關于vacuumdb命令行參數(shù)的信息并退出。
vacuumdb還接受下列命令行參數(shù)作為連接參數(shù):
指定運行服務器的主機名。如果數(shù)值以斜杠開頭,則被用作到Unix域套接字的路徑。
指定服務器正在偵聽的TCP端口或本地Unix域套接字文件的擴展(描述符)
連接的用戶名
從不提示密碼。如果服務器請求密碼身份認證并且一個密碼不能通過其他方式(如.pgpass 文件)來獲得,該鏈接嘗試就會失敗。該選項在沒有用戶可以輸入密碼時對批量作業(yè)和腳本中是有效的。
強制vacuumdb在連接到數(shù)據(jù)庫之前提示密碼。
該選項從來不是至關重要的,因為若服務器請求密碼身份認證vacuumdb 將會自動提示一個密碼。然而,vacuumdb將浪費一個連接嘗試發(fā)現(xiàn) 服務器需要一個密碼。在一些情況下,值得輸入-W來避免額外的連接嘗試。
缺省連接參數(shù)
該實用程序,跟大部分其他PostgreSQL實用程序一樣,也是用libpq 支持的環(huán)境變量。(請參閱Section 31.13。)
如果出差錯了。參閱VACUUM 和psql獲取關于錯誤信息和可能問題的詳細描述。 數(shù)據(jù)庫服務器必須在目標主機上運行。同樣, 任何libpq前端庫可獲得的缺省設置和環(huán)境變量都將生效。
vacuumdb可能需要與PostgreSQL服務器連接若干次, 每次都詢問口令。在這種情況下,設立一個~/.pgpass是比較方便的。 參閱Section 31.14獲取更多信息。
整理數(shù)據(jù)庫test:
$ vacuumdb test
為優(yōu)化器清理和分析一個名為bigdb的數(shù)據(jù)庫:
$ vacuumdb --analyze bigdb
清理數(shù)據(jù)庫xyzzy中名為foo的表, 并且為優(yōu)化器分析列bar:
$ vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy