分区,个人理解就是将一个大表分解成小表储存,可以提高各方面的性能;
范围分区(range): 就是一个确定范围的分区,如星期一到周日为一个范围,每个星期为一个分区;
语法: partition by range(字段) (
partition 分区名 values less than(范围) tablespace 表空间;
)
散列分区(hash): 利用hash建分布的分区,主要是用于不知道该表具体的数据类型而作的优化,优化效果很一般;
必须每个分区拥有独立的表空间;
语法: partition by hash(字段) (
partition 分区名 tablespace 表空间;
)
列表分区(list): 该列的值必须是已知,也就是固定的值,比如说性别,城市等;
语法: partition by list(字段) (
partition northeast value(值);
)
组合分区: 两个分区可以组成组合分区;
Interval分区(11G): 是范围分区的增强版,拥有自动分配空间和索引的能力,实现自动化;
语法: partition by range(字段)
interval (numtoyminterval(1,'month)) (
//numtoyminterval是数字转换函数,只拥有'year'与'month';
partition 分区名 values less than(范围)
)
外键分区(11G): 外键分区是指用本表没有的字段,而想用与本表由关联关系的表字段来分区,此时使用外键分区;
语法: partition by reference (fk_trans_01)
针对大批量数据进行的优化——索引分区
在几百万条记录时,即使是索引也是会占用很大空间,所以必要要建立索引空间;
索引空间分为本地索引分区和全局索引分区;
一般就是用本地索引,他比较OK,独立性好;
语法:create index 索引名 on 表明(列名)
local (
--表示本地索引分区
partition 分区名 tablespace 表空间;
)
oracle的笔记,凑合着看吧!6.分区
最新推荐文章于 2024-04-29 10:50:19 发布