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

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CLUSTER
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 21:42:59)

CLUSTER
名稱
CLUSTER  向服務器給出存儲建簇的建議 
  
語法
CLUSTER indexname ON table
輸入
indexname 
一個索引名稱. 
table 
表的名稱. 
輸出
CLUSTER 
成功建簇. 
ERROR: relation  inherits "table" 
表 tablerelation_number 是從表 "table"繼承來的 
ERROR: Relation table does not exist! 
表 table 不存在 
描述
CLUSTER 指示 Postgres 近似地基索引 indexname 的度量對表 table 進行存儲建簇.索引必須已經在表 table 上定義了. 
當對一個表建簇,該表的物理存儲將基索引信息進行.建簇是靜態的,也就是說,當表被更新,改變的內容不會建簇.不會試圖對更新過的記錄重新建簇.如果需要,可以通過手工執行該命令的方法重建簇. 

注意
該表實際上按索引順序拷貝到了一個臨時表中,然重新改成原名.因此,在建簇時所有賦予的權限和其它索引都將丟失. 
如果你只是隨機的訪問表中的行,那在堆表中的數據的實際存儲順序是無關緊要的.但是,如果你對某些數據的訪問多其他數據,而且有一個索引將這些數據分組,那你就將從 CLUSTER 中獲益. 

另一個 CLUSTER 很有幫助的例子是當你用索引從一個表中取出幾個記錄時.如果你從一個表中請求一定索引范圍的值,或者是一個索引過的值對應多行,CLUSTER 也會有助應用,因為如果索引標識出第一匹配行所在的堆存儲頁,所有其他行也可能已經在同一堆存儲頁裡了,這樣便節省了磁盤訪問的時間,加速了查詢. 

有兩種建簇的數據.第一種是用 CLUSTER 命令,此命令將原表按你聲明的索引重新排列.這個動作在操作大表時可能會很慢,因為每一行都從堆存儲頁裡按索引順序取出,如果存儲頁表沒有排序,整個表是隨機存放在各個頁面的,因而每行都要進行依次磁盤頁面操作.Postgres 有一個緩沖,但一個大表的主體是不可能都放到緩沖去的. 

另一個對數據建簇的方法是使用 

SELECT columnlist INTO TABLE newtable
     FROM table ORDER BY columnlist
這個用法使用 Postgres 排序的代碼 ORDER BY 來匹配索引,在對未排序的數據操作時速度快得多.然你可以刪除舊表,用 ALTER TABLE/RENAME 將 temp 改成舊表名,並且重建所有索引.唯一的問題是 OID 將不保留.這時再做 CLUSTER 將快得多,因為大多數堆棧數據已經排過序了而且使用現有的索引. 
用法
以雇員的薪水屬性對雇員關系建簇. 
CLUSTER emp_ind ON emp;
兼容性
SQL92
在 SQL92 規范裡沒有 CLUSTER 語句.
(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)

===更多相關===
 

★  樊強制作 歡迎分享  ★