Oracle表分區
阿新 • • 發佈:2017-06-10
src rom ngx 行數據 備份 報錯 style oracle 1.5 (4)範圍-哈希分區 (5)範圍-列表分區
當數據非常龐大的時候,比如,要查詢ID<1000的時候,如果不使用表分區的話,需要全表掃描(判斷每條記錄的ID是否小於1000),這樣大大影響了查詢的速度。創建索引是性能調優的方法,同樣,表分區也是。每個分區都是獨立的一個段,可以放在不同的表空間下面。
表分區有以下優點:
(1)由於將數據分散到各個區中,減少了數據損壞的可能性。
(2)可以對單獨的分區進行數據的備份與恢復。
(3)可以將分區分散到不同的物理磁盤,來分散IO。
(4)提高數據庫管理與性能。
oracle提供了以下幾種分區方法:
(1)範圍分區(range) (2)哈希分區(hash) (3)列表分區(List)
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表分區