1. 程式人生 > >Oracle表分區

Oracle表分區

src rom ngx 行數據 備份 報錯 style oracle 1.5

  當數據非常龐大的時候,比如,要查詢ID<1000的時候,如果不使用表分區的話,需要全表掃描(判斷每條記錄的ID是否小於1000),這樣大大影響了查詢的速度。創建索引是性能調優的方法,同樣,表分區也是。每個分區都是獨立的一個段,可以放在不同的表空間下面。

  表分區有以下優點:

  (1)由於將數據分散到各個區中,減少了數據損壞的可能性。

  (2)可以對單獨的分區進行數據的備份與恢復。

  (3)可以將分區分散到不同的物理磁盤,來分散IO。

  (4)提高數據庫管理與性能。

  oracle提供了以下幾種分區方法:

  (1)範圍分區(range) (2)哈希分區(hash) (3)列表分區(List)

 (4)範圍-哈希分區 (5)範圍-列表分區

  range分區:就是根據表的某個字段值範圍進行分區。 如下:創建分區表,根據ID的值進行分區,如果某些值暫時無法預測,可以使用maxvalue。

create table testpartition(id number,name varchar(100)) partition by range(id)
(
       partition p1 values less than (10),
       partition p2 values less than (20),
       partition p3 values less than (30
), partition p4 values less than (maxvalue) )

  查看用戶表分區情況:

select * from user_tab_partitions

  技術分享

  插入數據:

insert into testpartition values(15,zhengxisheng)

insert into testpartition values(5,jisheng)

insert into testpartition values(32,jidong)

  查詢各個分區的數據:

select * from testpartition partition(p2)

  技術分享

  更新數據:報錯如下:

update testpartition set id =12 where  id =5

  技術分享

  需要成設置可移動的分區:

alter table testpartition enable row movement

update testpartition set id =12 where  id =5

  再次查詢分區p2的數據:

  技術分享

Oracle表分區