触发器的效率问题
SQL Server 2005
有一个软件 A ,每分钟向表 T1 里写36条数据(没几个字段),同时在 T1 上有一个触发器,触发条件是Insert,功能是计算本分钟数据和上一分钟数据的差值,存入表T2。
实际应用中发现,每到整分钟的时候,软件A都会非常卡(其他软件如IE、Word不卡),8、9秒钟没反应,然后恢复正常。
测试发现,若关闭触发器,软件A不卡。
请教高人,这种情况,是我触发器的代码写的有问题,还是本身触发器效率就不行?有没有什么办法解决?
另请问:若我用1条insert语句一次性写入36条数据,触发器会触发几次?
[最优解释]
把你的触发器代码贴出来看先。
对于第二个问题,你的36条数据是怎么一次性插入数据库的? 我猜应该是通过循环一条条插入的吧,
每执行一次insert,就触发一次的
[其他解释]
这要看楼主你触发器是如何写的,数据是一条一条插入还是作为一个集合去插入。
[其他解释]
触发器效率蛮高的,但是性能开销比较大
[其他解释]
一个语句执行一次,也就是说,不管你一次insert几条数据,0条,10条,100条,都是触发一次。
你的触发器写的感觉有问题,36条数据,很小的计算量,你写的好的话,毫秒级别的事,你感觉不出来的。
[其他解释]
不管insert 几条 只触发一次
但是也可以达到这几条都被用于去计算的效果
关键看你怎么写了。
[其他解释]