日期:2014-05-16  浏览次数:20461 次

oracle学习笔记(十八)

?110)谈到分区的作用。我想有点意识的人都会明白。把一个大的数据表,分成一个一个的处理,这样做的效果是是显而易见的。在OLTP系统中,这种优势体现不出来。但是在数据仓库的系统中,这种优势则还是相当的明显的。区间分区,散列表分区,列表分区还有组合分区。

?

111)区间分区。根据条件来进行分区。具体的语法,可以见P572页。

?

112)散列表分区。就是使用哈希函数,计算值来进行分区。不过分区的个数,最好是2的幂。这样会使得数据相对平滑。

?

113)列表分区。根据散列值的列表进行分区。因为上面的散列值是不能控制的。而这里则可以控制。

?

114)索引分区:

???? 分为局部索引和全局索引。

????

115)局部索引分。简单的说,就是一个分区,一个索引。

???? 局部前缀索引和局部非前缀的索引。两者的区别经在于,前者,分区键会在索引的前几列上。后者则不会。

???? 然后,其涉及的两个问题

???? 其一,分区消除行为。

???????? 如果说一个分区下线(比如出现磁盘错误等)。利用局部前缀索引的查询能够完成。但是非前缀索引的则不行。

???? 其二,为了保证唯一约束(UNIQUEPRIMARY KEY)。分区键必须包含在索引本身。

?? ??看到这里,我明白了一件事情。那就是,其实查询优化等,会自动区分各个索引的不同。