Oracle表分区
Posted gdpuzxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle表分区相关的知识,希望对你有一定的参考价值。
当数据非常庞大的时候,比如,要查询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表分区的主要内容,如果未能解决你的问题,请参考以下文章