日期:2014-05-17  浏览次数:20505 次

用 游标 插入数据太慢 怎么办
用 游标 插入数据太慢 怎么办

用游标合并表生成 新表

插入过程中用到 自定义函数







------解决方案--------------------
拼結好sql語句後,直接動態執行就好了

提供下你的表結構及要求插入數據的方式
------解决方案--------------------
DML操作尽量不使用游标吧,使用集合的方法操作
------解决方案--------------------
用游标插入数据是最低效的....我相信一定还有其他方法实现集合操作。
------解决方案--------------------
你其实要去研究你的数据,我举个例子,如果你是从A表去数据,然后对字段a调用函数f,那你可以使用:
insert into 目标表
select f(a),....
from A

这样就可以拉,没必要用游标甚至循环。
上述只是例子,有点.....别见怪。
------解决方案--------------------
从代码看,可以不用游标方式的,
函数可以转为outer apply..的写法
子查询可以转为left join..的写法
------解决方案--------------------
探讨
不可以 有一对多的关系 而且 一对多这个多要变成一列 我自定义函数里边做这样处理了

比如 一个 wineID 可以对应多个 GrpeID 类似的

------解决方案--------------------
整个数据库都可以不用游标,要不要那么快否定先,用游标,想优化太难