最近优化一个report,首先是因为SQL关联太复杂,就新建了一个物化视图(materialized view),速度提升不少。
直到有一天,有些用户又开始抱怨速度慢了。
查看执行计划里,应该走索引的字段并没有走索引。
重新看了下物化视图的SQL,里面有一行parallel 4引起了我的注意。
于是测试了下:
select /*+ PARALLEL (o, 4) */ from mv_order o;
这条语句跑了四边mv_order, FULL talbe scan, 花了5s
select /*+ NOPARALLEL (o) */ from mv_order o;
这条语句走了index,花了600ms
很明显,不是什么时候parallel都会快,反而会变慢。