oracle - 分区 - 分区概述

分区(partitioning)最先在Oracle 8.0中引入,这个过程是将一个表或索引物理地分解为多个更小、更可管理的部分。就访问数据库的应用而言,逻辑上讲只有一个表或一个索引,但在物理上这个表或索引可能由数十个物理分区组成。每一个分区都是一个独立的对象,能够独自处理,也能够做为一个更大对象的一部分进行处理 数据库

分区只是一个工具,对索引或表进行分区时可能发生3种状况:使用这些分区表的应用可能运行得更慢;可能运行得更快;有可能没有任何变化。个人意见是,若是你只是一味地使用分区,而不理解它是如何工做的,也不清楚你的应用如何利用分区,那么分区很可能只会对性能产生负面影响

 

分区有利用管理大的表和索引,有以下好处: 并发

提升可用性:不管是oltp仍是仓库系统 高并发

 优化器可以消除分区,这意味着许多用户可能甚至从未注意到某些数据是不可用的。
 出现错误时的停机时间会减小,由于恢复所需的工做量大幅减小 工具

减小管理负担:这是由于与在一个大对象上执行操做相比,在小对象上执行一样的操做从本质上讲更为容易、速度更快,并且占用的资源也更少 性能

改善语句性能: 优化

分区最后一个总的(潜在)好处体如今改进语句(SELECT、INSERT、UPDATE、DELETE、MERGE)的性能方面。咱们来看两类语句,一种是修改信息的语句,另外一种是只读取信息的语句 对象

并行dml 索引

查询性能 资源

分区消除(partition elimination):处理查询时不考虑某些数据分区。咱们已经看到了一个分区消除的例子。
并行操做(parallel operation):并行全表扫描和并行索引区间扫描就是这种操做的例子 it

分区消除只在大对象全面扫描时才有用,由于经过分区消除,你能够避免对对象的很大部分作全面扫描.

能够用分区来减小竞争,从而提升并发度能够利用分区将一个表的修改分布到多个物理分区上。并非只有一个表段和一个索引段
相关文章
相关标签/搜索