Sql server SQL Server作业每2分钟运行一次…错误做法?

Sql server SQL Server作业每2分钟运行一次…错误做法?,sql-server,linked-server,sql-server-agent,Sql Server,Linked Server,Sql Server Agent,我们有两台服务器,一台速度很慢,而且地理位置很远。设置分布式查询是一个令人头痛的问题,因为它并不总是有效的。有时,我们会收到一个信号量超时时间已过的消息,如果查询有效,则可能会很慢 一种解决方案是设置一个作业,用我们需要的数据填充慢速服务器上的临时表,然后将INSERT、UPDATE和DELETE语句从临时表写入服务器表,这样我们就可以在速度更快的服务器上更新数据。该作业大约需要1分钟30秒,设置为每2分钟运行一次。这是一种糟糕的做法吗?它会伤害我们较慢的SQL Server服务器吗 编辑 事务

我们有两台服务器,一台速度很慢,而且地理位置很远。设置分布式查询是一个令人头痛的问题,因为它并不总是有效的。有时,我们会收到一个信号量超时时间已过的消息,如果查询有效,则可能会很慢

一种解决方案是设置一个作业,用我们需要的数据填充慢速服务器上的临时表,然后将INSERT、UPDATE和DELETE语句从临时表写入服务器表,这样我们就可以在速度更快的服务器上更新数据。该作业大约需要1分钟30秒,设置为每2分钟运行一次。这是一种糟糕的做法吗?它会伤害我们较慢的SQL Server服务器吗

编辑 事务发生在运行作业的慢速服务器代理上,并使用分布式查询连接和更新我们的快速服务器。如果作业在fast服务器上运行,我们会不时收到超时错误


至于细节,如果记录存在于速度较快的服务器上,我们将执行更新;如果记录不存在,我们将插入;如果记录不再存在于速度较慢的服务器上,我们将删除……我可以在到达计算机时发布代码

您需要澄清您当前正在做什么。我想您是说在快速服务器表上有insert、update和delete触发器,并将相同的事务应用于慢速服务器。是这样吗?如果没有,你在做什么。事实上,你需要90秒的时间,每2分钟为您的表复制听起来是一个坏主意。在如何实现这一点的详细信息中,可能存在重大的优化机会。是否只有一台服务器是更改的来源,或者可以在两台服务器上启动更改?如果两者都存在,重新设计引擎使所有更改发生在快速服务器上,然后最终传播到慢速服务器是否合理。更改发生在慢速服务器上,新服务器只需要从慢速服务器获取数据,这样使用新服务器的新应用程序就可以使用数据。在我们的新应用程序上设置到旧服务器的连接字符串也很慢。正如我所建议的,您是否通过触发器收集增量。大约每分钟有多少行,大约每分钟有多少字节。插入、删除和更新的大约百分比。一个更新是您通常只更改记录的一小部分。我最初有触发器将增量收集到更改表中,但它变得比我想要的更复杂,因为我必须确保每个记录都按顺序处理,这必须使用光标来完成,我想避免使用光标。也许我应该重温一下?应该有更多的更新,然后插入,然后删除。不知道具体数字