触发器过程优化
4张 300个字段的表table1,table2,table3,table4 字段名一样,前2张表中只都有
一条记录, 现在要做如下处理
Declare @ItemCount
select @ItemCount = ....
/*取差值*/
table3.item1 = table1.item1 - table2.item1
。。。。
。。。。
table3.item300 = table1.item300 - table2.item300
/*取平均*/
table4.item1 = (table1.item1 + table2.item1)/@ItemCount
。。。。
。。。。
table4.item300 = (table1.item300 + table2.item300)/@ItemCount
有什么快速的优化的执行方法?
我现在也是用exec函数 做循环,
declare sqltext nvarchar(256)
for i=1 to 300 begin
/*先运算差值*/
/*取出第一个表的字段值*/
delete temptable
select sqltext='insert temptable(Value) Select item'+convert(varchar,i)+
' from table1 '+
' where rDate='''+convert(varchar(20),@CurrentDate)+''''
select @tempFloat1 = value from temptable
/*取出第二个表的字段值(方法同上)*/
....
/*做运算*/
select @tempFloat1 = @tempFloat1-@tempFloat2
/*做insert 到table3*/
/*再用同样的办法计算平均值*/
end
但是2个循环下来(一次差值, 一次平均),花了14~19秒的时间,而现在我需要在2秒内就运算完毕(该过程在触 发器中使用) 各位有什么好招吗?
各位过路的神仙,路过的大侠,看一眼吧,伸伸手吧 :)