oracle 分割槽和分割槽索引

2021-10-07 15:35:50 字數 4246 閱讀 1266

1、分割槽分類:

range分割槽,hash分割槽,list分割槽,復合分割槽,間隔分割槽,system分割槽

2、range分割槽:區域分割槽,就是按照定義的區域進行分割槽

語法:

create

table(.

..)partition

by range(field)

(partition p1 values less than(

value),

partition p2 values less than(

value),

partition p3 values less than(

value))

;

檢視分割槽情況:

select

*from user_tab_partitions;

檢視分割槽資料:

select

*from table_name partition

(p1)

;

修改分割槽:

--新增

alter

table table_name add

partition p4 values less than (maxvalue)

;--刪除

alter

table table_name drop

partition p4;

--合併

alter

table table_name merge partitions p1,p2 into

partition p2;

--拆分

alter

table tablename sblit partition p2 at(

1500

)into

(partition p21,

partition p22)

;

注意事項:1、更新資料時不可跨分割槽修改

解決辦法:

alter

table table_name enable

row movement;

2、如果建表之前沒建分割槽,則需要備份表資料後,刪除表,重新建表

例項:

;3分割槽索引:分割槽之後雖然可以提高查詢效率,但也僅僅是提供了資料的範圍,所以我們在有必要的情況下,需要在分割槽內建立索引,進一步提高效率。

分割槽索引分為兩類:一類叫做local,一類叫做global。

local:每個分割槽上都建立索引(本地索引)

global:一種是在全域性上建立索引,這種方式分布分割槽都一樣,一般不使用。

語法:

--本地索引

create

index field_index on tablename(field)

local

--全域性索引

create

index field_index on tablename(field)

global

--字首索引

create

index idxname on tablename(field)

global

partition

by range(field);

檢視分割槽索引

`

select

*from user_ind_partitions;

`

例項:

create

index count_id_index on a(count_id)

local

--根據表分割槽建立本地索引分割槽

(partition p1,

partition p2,

partition p3,

partition p4 )

;

注意:1、local是在每個分割槽上建立索引,必須所有分割槽都有,必須是分割槽字段

2、字首索引,自定義區域時必須要maxvalue

4、hash分割槽:實現均勻的負載值分配,增加hash分割槽可以重新分布資料

語法:

create

table(.

..)partition

byhash

(field)

(partition p1,

partition p2,

partition p3

);

5、list分割槽:根據列表值進行分割槽

語法:

create

table(.

..)partition

by list(field)

(partition p1 values

('1'

,'2'),

partition p2 values

('3'

,'4'),

partition p3 values

('5'

,'6'),

partition other values

(default);

);

6、復合分割槽:把範圍、雜湊、列表 分割槽進行組合

語法:

create

table(.

..)partition

by range(field)

subpartition by

hash

(field2)

subpartitions 4

(partition p1 values less than(

1000),

partition p2 values less than(

2000),

partition p3 values less than(

3000))

;

7、間隔分割槽:一種自動化的分割槽,可以指定時間間隔進行分割槽,是range分割槽的引申,實現range分割槽的自動化

語法:

Oracle分割槽索引

表可以按 range hash list 分割槽,表分割槽後,其上的索引和普通表上的索引有所不同,oracle 對於分割槽表上的索引分為 2類,即區域性索引和全域性索引,下面分別對這 2種索引的特點和侷限性做個總結。1.區域性索引一定是分割槽索引,分割槽鍵等同於表的分割槽鍵,分割槽數等同於表的分割槽...

oracle分割槽索引

前兩天做乙個大的分割槽表的資料清理,split 分割槽後,忘記rebuild 索引,導致生產庫查詢的分割槽表非常的緩慢 對分割槽表某個分割槽做split 如果沒有在alter table 語句最後加上update indexes,被 出的兩個分割槽的本地索引和整個表的全域性索引都會失效。當根據索引字...

Oracle 分割槽索引詳解

oracle 分割槽索引詳解 table index create unique bitmap index schema.index name on schema.table name tbl alias col asc desc index clauseindex attribs index cl...