oracle数据库分区表按主键查询快还是按主键+分区条件查询快?

2024-11-24 00:26:59
推荐回答(3个)
回答1:

1.首先我想知道SQBM字段上是否存在INDEX,INDEX类型是global还是local partition。
如果SQBM上没有INDEX的话,则3个SQL的运行性能是一样的。都只会使用PK的index
2.如果表上存在(ID,SQBM)的组合INDEX,那么你添加SQBM条件是有作用的。
3.对于SQL2,SQL3 条件顺序颠倒是不会影响性能的。

回答2:

select * from TEST where ID=? and SQBM=?
这条语句快,SQL执行计划有条规则是语句执行是从右至左。通过先执行分区字段SQBM条件后,内容会分成几部分。这样就不会全盘扫描了。

回答3:

那个,你在where子句中单独使用sqbm就可使看出其区别了,分区表对性能最大的优化就是分区消除,你在id上简历了unique index,在加上数据量较小,肯定看不来效果
可以考虑建立locol unique index 如create unqiue index on (id,sqbm) local
然后使用2,3,就可以看出效果来了