当前位置: 数据库>sqlserver
sql server执行update语句超级慢的原因与解决方法
来源: 互联网 发布时间:2014-08-29
本文导语: 使用update执行一段不算复杂的sql查询时,速度超级的慢,开始以为是sql写的有问题,后来发现是trigger的问题,影响了修改的速度。 禁用掉触发器就好了,看来以后这个东东要慎用啊。 解决方法: 在执行update之前关闭该表的tri...
使用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
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