最近优化存储过程,发现一个存储过程要跑3个多小时,打开一看,代码却非常简单,如下:
INSERT INTO table1 a
(
a.idcard,
a.nbr,
a.flag,
a.srcdate,
a.datadate
)
SELECT
b.idcard,
b.nbr,
b.flag,
b.srcdate,
vi_date --这个是自动获取的当日日期
FROM TABLE2 b;
然后查了一下数据量,现在a表中有35亿数据,是按照时间分区的分区表,b表每天会清空,有索引,但是每天向a表中插入的数据量得有700W左右,求大神指导一下想缩短这个存储过程的执行时间,应该从哪入手呢,有什么方法呢?
采用并行插入,增大排序缓冲区 或者是 先将索引失效之后再重建索引