关于分区表的使用
最近在使用oracle的分区表,有点心得,对之后的性能优化可能有帮助,先记着.
表A,有type字段,一般只记录1和2,1表示某一类数据,2表示另外一类数据,一般对于这种字段建立索引是没有意义的,因为就只有1和2两个值,就算建了索引,一般oracle也不会用。
例如,有如下查询
Select * from A where type= 2;
对于这个查询就算type上建立了一个索引,这个索引也是不会被使用的,而是进行一次全表的扫描。
当前我们的情况是这样的,type =1 的记录有10w,而type=2 的记录只有几条,但因为做了一次全表的扫描,上面的语句查询话了很长的时间。
现在我们用type字段做一个分表表。
这时候再进行上述查询的时候速度就快了非常多,看了执行计划,原因是:
虽然这时候索引依然不起作用,但因为使用了分区表,在进行全表的扫描的时候就不会进行全表扫描了,而是进行一次type =2的全分区的扫描,由于type=2 的记录很少,那么扫描很快就完成了,因此速度就快了很多。