使用update执行一段不算复杂的sql查询时,速度超级的慢,开始以为是sql写的有问题,后来发现是trigger的问题,影响了修改的速度。
禁用掉触发器就好了,看来以后这个东东要慎用啊。
解决方法:
在执行update之前关闭该表的trigger,执行完毕之后再启用trigger。
用sql语句实现,如下:
复制代码 代码示例:
DISABLE trigger dbo.TrgPFAcctHierarchy on PFAcctHierarchy
go
update PFAcctHierarchy set
demoInd = hca.demoInd
FROM
(select h.demoInd,ca.pfId FROM PFAcctHierarchy h, PFClientAcct ca
where h.pfId = ca.pfId
and h.accountType in ('CLIENT')
and ca.clientRelationshipInd = 'Y') hca,
PFAcctHierarchy pfh
where pfh.pfRootId = hca.pfId
and pfh.pfId <> pfh.pfRootId
go
enable trigger dbo.TrgPFAcctHierarchy on PFAcctHierarchy
go