表A(id,t1,t2,t3...)大概有40个字段 数据量有100万
我现在写一个存储过程来实现计算表A中的每条记录的费用
计算过程如下:
1.计算天数D 通过字段t1计算得天数
2.计算年度Y 通过t2计算得年
3.计算金额M 通过参数id,D,Y去查询表B的某个字段得到(这里写了一个函数,函数中SQL查询得到结果)
4.计算金额M2 通过参数id,D,Y,M去查表C的某个字段得到
5.将id,D,Y,M,M2 插入一个新表D中
上面是我计算的大概过程
我现在采用的是在游标中循环,在循环中计算,并将数据放入索引表 结束循环
在循环将索引表的数据批量插入新表现在测试性能,发现运行相当的慢,测试3万数据要6小时才完成计算的方式或者过程我应该怎么改进?先谢谢大家了!
我现在写一个存储过程来实现计算表A中的每条记录的费用
计算过程如下:
1.计算天数D 通过字段t1计算得天数
2.计算年度Y 通过t2计算得年
3.计算金额M 通过参数id,D,Y去查询表B的某个字段得到(这里写了一个函数,函数中SQL查询得到结果)
4.计算金额M2 通过参数id,D,Y,M去查表C的某个字段得到
5.将id,D,Y,M,M2 插入一个新表D中
上面是我计算的大概过程
我现在采用的是在游标中循环,在循环中计算,并将数据放入索引表 结束循环
在循环将索引表的数据批量插入新表现在测试性能,发现运行相当的慢,测试3万数据要6小时才完成计算的方式或者过程我应该怎么改进?先谢谢大家了!
感觉你的1,2可以合并而不是分开两步吧?
不能通过GROUP BY ID一次查询出D,Y,M,M2 ?
将表结构贴出来,以及3,4的需求
既然是一行一行的操作,我感觉你for循环里的东西用一条SQL就可以搞定呵呵。。