一、分区好处:
提高可用性。
减少管理负担:
执行同样操作,资源少,速度快
对是多分区的表进行‘MOVE’操作,(update 或delete等操作后,让腾出的空间可以重用)
begin
for x in(select partition_name
from user_tab_partitions
where table_name ='BIG_TABLE2')
loop
execute immediate
'alter tabele big_table2 move partition' ||x.partition_name;
end loop;
end;
/
改善语句性能:
1,并行DML(parallel DML)
采用PDML时,oracle使用多个线程/进程执行insert,update或delete.速度提升
9i前要求PDML必须分区。
9i及以后限制放松:如果在同一表上执行PDML,而且这个表的一个lob列上有一个位图索引,要并行执行操作就必须对这个表分区;另外并行度就限制为分区数。
2,查询性能(只读查询select时)
分区对两类特殊操作起作用:
①分区消除(partition elimination):处理查询时不考虑某些数据分区。
②并行操作 (parallel operation):并行全表扫描和并行索引区间扫描
注:1-OLTP系统(On-Line Transaction Processing联机事务处理系统(OLTP)实时响应)中,不应该把分区当作一种大幅改善查询性能的方法。
2-数据仓库/决策支持系统中,分区不仅是一个强大的管理工具,还可以加快处理的速度。
二、表分区机制
1)表分区方法:
区间分区。
散列分区。
分区数使用2的幂,可实现数据均匀分布。
列表分区。
组合分区。
区间分区和散列分区的组合,或 区间分区和列表分区的组合。
2)行移动
修改数据导致行跨分区移动时,在8i及以后的版本中,只有当表启用了行移动时才支持,否则产生一个错误:ORA-14402: updating partition key column would cause a partition change.
阅读(1642) | 评论(0) | 转发(0) |