日期:2014-05-16 浏览次数:20424 次
一,为什么要分区
Oracle大表有以下一些可管理性和性能方面的约束:
1,表的可用性
a,大表读磁盘的损坏方面更加脆弱
b,恢复一个大表通常要耗费几个小时,甚至更长时间
2,大表的可管理性
a,大表需要更多的时间去加载数据,创建索引和删除部分数据
3,性能方面
a,扫描大表和大索引非常的耗时
如果不考虑分区,在对大表传统的做法是分成多个小表,让后通过UNION的方式访问信息,当然这种做法的对应用程序是一种痛苦,维护成本也高。为了很好的解决这些情况,分区表就可以很好的解决这些问题。大的表和索引可能被分区成多个小的,容易管理的小的部分。
二,分区的好处
1,每个分区的可以独立的被管理
2,可以在单独的某一个分区上进行备份和恢复
3,同一个表或者索引的某一个分区的是否可以被成功访问不影响对其他分区的DML 和Queries.
4, 分区裁剪:可用控制相应的分区才被访问
5,分区在负责均衡上会有很大的提高
三,Oracle 提供很多的方法和命令行取管理分区
1,分区可以从一个表空间移动另外一个表空间
2,分区可以被dropped,added, or truncated.
3, 可以针对某一个特定的分区上进行select,update,insert, and delete操作而不必要在整个表上操作。
4,分区上可以被并行的scanned,updated,inserted,or deleted
四,Oracle 的分区方法
1,Range partitioning 范围分区
2,Hash partitioning 哈希分区
3,Composite partitioning 组合分区,包括范围哈希分区和范围列表分区
4,List partitioning 列表分区
五,索引分区:
除了集群索引不可以分区,其他的索引都可以被分区,分区规则和表一样。