索引深度与并行查询

     上周五一早就被开发组拉过去救场(专业的前天晚上加班调休还未来),说是一条SQL执行需要10S,平时只需要毫秒级别的。

     有点慌,毕竟还是没处理过,拿着SQL看执行计划,也没看出啥来(其实很不专业),后来系统那边发聩数据库就要被并行搞奔溃了(一开始为注意并行),

才想起看并行,又有人说前天晚上表被修改过,当事人还在赶来的路上。还是万能的百度告诉了我,索引的深度引发了自定并行查询,不多说先就急

    alter index xxx noparallel;

  执行完,查询速度恢复,数据库性能恢复。

  还是来看下原因,前天项目组提需求,说是表中废弃数据太多,需要删除数据;后发现表中过亿数据,需要删除的有3700w,表上无分区,单独删表不太现实。固在晚上流量少时重建分区。但是分区建立后发现查询SQL未走索引,发现索引失效,需要重建;由于表太大重建索引时给索引加上了并行(深度degree),但是未在结束后加上noparallel,导致第二天活动上线时并行爆炸(未细研究为啥degree=8>parallel=8。由于平时多用OLAP固此参数未能影响正常使用,此次是OLTP系统。

  此次问题注意,问题解决还是需要有始有终,还有,我需要学的还有太多太多。

你可能感兴趣的:(Oracle问题解决)