我在本地数据库的存储过程中对table1的数据做update操作,table1的update触发器将对在链接服务器中的table1表中做相应数据修改。问题是某些字段的修改操作触发时运行时间很正常,但是有些字段做修改时就很慢,要几分钟才能操作完。比较过这些字段,2个表格的字段定义都差一样却还是不行。(做insert触发时很正常)请问有没有什么解决方法??
7 个解决方案
#1
直接在你本地服务器上操作一下链接服务器,进行update语句,看看慢不慢。
如果不慢,就检查触发器,看语句是否有可以优化的地方,或者启用了分布式事务什么的。
如果慢,那可能就是网络或者服务器性能的问题了。
如果不慢,就检查触发器,看语句是否有可以优化的地方,或者启用了分布式事务什么的。
如果慢,那可能就是网络或者服务器性能的问题了。
#2
是因为远程链接,它与外界因素有关系的;
有时候网络速度慢也影响更新速度
有时候网络速度慢也影响更新速度
#3
更新很多数据?
#4
请问你是怎么更新远程的表的,把SQL语句打出来我们看看
#5
1、网络因素
2、远程的表上还有针对该字段的触发器?
2、远程的表上还有针对该字段的触发器?
#6
这个问题以前有人问过,就是网络延时...
#7
update语句很简单啊。。链接服务器:ser1,数据库:data1
@clom1 varchar(20)
if((select clom1 from inserted)<>(select clom1 from deleted))
select @clom1=clom1 from inserted
update ser1.data1.dbo.table1 set clom1=@clom1 where id=前面已获得的id值
操作形式就是这样的。
1本地执行链接数据库的update语句很正常啊。。跟执行本地数据库基本没啥区别
2.数据都是一个一个的进行比较的,数据量不大,我对触发器进行单步调试的。
3.网络延迟的可能性也不大,因为在某一次更新总是在那固定的几个字段进行更新是出现速度缓慢的问题。
4.clom1字段也没有相应的触发器涉及到它。
5.还有点疑惑的是:在另一个触发器中做同样处理时,clom1的速度正常,其他某些字段会变慢。。。
搞不懂啊!!!
@clom1 varchar(20)
if((select clom1 from inserted)<>(select clom1 from deleted))
select @clom1=clom1 from inserted
update ser1.data1.dbo.table1 set clom1=@clom1 where id=前面已获得的id值
操作形式就是这样的。
1本地执行链接数据库的update语句很正常啊。。跟执行本地数据库基本没啥区别
2.数据都是一个一个的进行比较的,数据量不大,我对触发器进行单步调试的。
3.网络延迟的可能性也不大,因为在某一次更新总是在那固定的几个字段进行更新是出现速度缓慢的问题。
4.clom1字段也没有相应的触发器涉及到它。
5.还有点疑惑的是:在另一个触发器中做同样处理时,clom1的速度正常,其他某些字段会变慢。。。
搞不懂啊!!!
#1
直接在你本地服务器上操作一下链接服务器,进行update语句,看看慢不慢。
如果不慢,就检查触发器,看语句是否有可以优化的地方,或者启用了分布式事务什么的。
如果慢,那可能就是网络或者服务器性能的问题了。
如果不慢,就检查触发器,看语句是否有可以优化的地方,或者启用了分布式事务什么的。
如果慢,那可能就是网络或者服务器性能的问题了。
#2
是因为远程链接,它与外界因素有关系的;
有时候网络速度慢也影响更新速度
有时候网络速度慢也影响更新速度
#3
更新很多数据?
#4
请问你是怎么更新远程的表的,把SQL语句打出来我们看看
#5
1、网络因素
2、远程的表上还有针对该字段的触发器?
2、远程的表上还有针对该字段的触发器?
#6
这个问题以前有人问过,就是网络延时...
#7
update语句很简单啊。。链接服务器:ser1,数据库:data1
@clom1 varchar(20)
if((select clom1 from inserted)<>(select clom1 from deleted))
select @clom1=clom1 from inserted
update ser1.data1.dbo.table1 set clom1=@clom1 where id=前面已获得的id值
操作形式就是这样的。
1本地执行链接数据库的update语句很正常啊。。跟执行本地数据库基本没啥区别
2.数据都是一个一个的进行比较的,数据量不大,我对触发器进行单步调试的。
3.网络延迟的可能性也不大,因为在某一次更新总是在那固定的几个字段进行更新是出现速度缓慢的问题。
4.clom1字段也没有相应的触发器涉及到它。
5.还有点疑惑的是:在另一个触发器中做同样处理时,clom1的速度正常,其他某些字段会变慢。。。
搞不懂啊!!!
@clom1 varchar(20)
if((select clom1 from inserted)<>(select clom1 from deleted))
select @clom1=clom1 from inserted
update ser1.data1.dbo.table1 set clom1=@clom1 where id=前面已获得的id值
操作形式就是这样的。
1本地执行链接数据库的update语句很正常啊。。跟执行本地数据库基本没啥区别
2.数据都是一个一个的进行比较的,数据量不大,我对触发器进行单步调试的。
3.网络延迟的可能性也不大,因为在某一次更新总是在那固定的几个字段进行更新是出现速度缓慢的问题。
4.clom1字段也没有相应的触发器涉及到它。
5.还有点疑惑的是:在另一个触发器中做同样处理时,clom1的速度正常,其他某些字段会变慢。。。
搞不懂啊!!!