有多个表A,B,C,D,E
现在要把A的数据通过存储过程保存或跟新到B,C里,
A中有几个字段需要根据表D,E来比对后转化成相应的数据,再插入B,C,
现在用的方案是浮标:
每次定位一行,给变量做初始化,根据A中一些字段取D,E中的数据,
通过insert或update把A中的和对比取到D,E中的数据插入到B,C表,
但是速度感人,1W数据要4分钟,太慢了。
------
目前想到的方案是在表A再加几个字段存储根据表D,E来比对后转化的数据,
然后一口气insert和update到B,C表中,
这个方案会提高效率吗?
或者还有什么方案?
求大佬解答。
这其中的关键是 你是否可以一次性的 从A表中加工出你 要插入B和C的数据。
如果能异常加工(查询)出来,完全可以1次或2次查询完成,而不需要cursor方式。
如果不能,你只能采取逐行处理A的方式。
------------
另外,不一定非得用cursor,凡是能循环处理的方法都是可行的。没准你通过内存表、或临时表可以获得更高的效率
------------
还有,可以考虑后台异步作业处理的方式,你就不需要主动调用这个处理的存储过程了
公用表表达式能完成这个功能吗?网上找到的都是查询,而且只能被一句引用,用递归的话也是一条条来,上限100次递归。。。感觉不靠谱啊。。。
---
临时表或表变量能拯救吗?
"A中有几个字段需要根据表D,E来比对后转化成相应的数据",速度的瓶颈应该在这儿。