深入學習Oracle分割槽表及分割槽索引 3

2021-08-25 23:38:59 字數 1509 閱讀 5567

建立hash分割槽

語法如下:[圖:hash_partitioning.gif]

語法看起來比range複雜,其實使用起來比range更簡單,這裡需要我們指定的有:

l column:分割槽依賴列(支援多個,中間以逗號分隔);

l partition:指定分割槽,有兩種方式:

n 直接指定分割槽名,分割槽所在表空間等資訊

n 只指定分割槽數量,和可供使用的表空間。

① 建立hash分割槽表

jssweb> create table t_partition_hash (id number,name varchar2(50))

2 partition by hash(id)(

3 partition t_hash_p1 tablespace tbspart01,

4 partition t_hash_p2 tablespace tbspart02,

5 partition t_hash_p3 tablespace tbspart03);

表已建立。

要實現同樣效果,你還可以這樣:

jssweb> create table t_partition_hash2 (id number,name varchar2(50))

2 partition by hash(id)

3 partitions 3 store in(tbspart01,tbspart02,tbspart03);

表已建立。

這就是上面說的,直接指定分割槽數量和可供使用的表空間。

要查詢表的分割槽資訊,仍然是通過user_part_tables,user_tab_partitions兩個資料字典,這裡不再舉例。

② global索引hash分割槽

hash分割槽索引的子句與hash分割槽表的建立子句完全相同,例如:

jssweb> create index idx_part_hash_id on t_partition_hash(id)

2 global partition by hash(id)

3 partitions 3 store in(tbspart01,tbspart02,tbspart03);

索引已建立。

查詢索引的分割槽資訊也仍是通過user_part_indexes、user_ind_partitions兩個資料字典,不再舉例。

③ 建立local索引

在前面學習range分割槽時,我們已經對local索引的特性做了非常清晰的概述,因此這裡也不再舉例,如有疑問,建議再仔細複習range分割槽的相關示例,如果還有疑問,當面問我好了:)

綜上:ø 對於global索引分割槽而言,在10g中只能支援range分割槽和hash分割槽,因此後續示例中不會再提及。

ø 對於local索引分割槽而言,其分割槽形式完全依賴於索引所在表的分割槽形式,不管從建立語法還是理解難度均無技術含量,因此後續也不再提供示例。

ø 注意,在建立索引時如果不顯式指定global或local,則預設是global。

ø 注意,在建立global索引時如果不顯式指定分割槽子句,則預設不分割槽(廢話)。

深入學習分割槽表及分割槽索引 7 怎樣管理 續

分割槽索引的操作也有一張表黑黑,如下 分割槽索引 索引型別 range list hash 組合分割槽 是否帶來io操作 增加分割槽 add partition 全域性 支援 是 本地 刪除分割槽 drop partition 全域性支援 無本地 修改預設屬性 modify default attr...

oracle分割槽表學習及應用

create table 建立分割槽表 create table bill monthfee zero serv id number 20 not null,billing cycle month number 6 not null,date type number 1 acc nbr varcha...

Oracle分割槽表學習及練習

create table 建立分割槽表 create table bill monthfee zero serv id number 20 not null,billing cycle month number 6 not null,date type number 1 acc nbr varcha...