sql server执行update语句超级慢的原因与解决方法

发布时间:2020-08-21编辑:脚本学堂
本文介绍下,在生产环境中,遇到的一个sql server中执行update语句超级慢的问题,经查是trigger引起的。供大家学习参考。

使用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