链接服务器返回消息“查询超时已过期”。

Leo*_*eon 2 sql-server etl linked-server query-timeout

我们有两个独立的 SQL Server。在一台服务器上,我们有一个数据仓库 (DWH),在另一台服务器上,我们有销售信息数据库。

现在在 DWH 服务器上有一个 ETL 作业从销售服务器收集信息。该作业每天午夜后运行。DWH 通过链接服务器从销售数据库中收集信息。

现在,大多数情况下 ETL 作业运行没有任何问题。但有时会因为查询超时而失败。我们发现,有一个特定的模式:故障每 11 天发生一次。所以在第 11 天,ETL 作业无法收集信息。

出现以下错误:

链接服务器“我的链接服务器”的 SQLNCLI11 返回消息“查询超时已过期”。

注意:作业通常在启动后 10 分钟失败。

我们已经搜索了所有内容,但无法找出此问题的原因。我们也知道每次的数据量几乎一样。也没有任何运行所有 11 天之类的预定作业。

链接服务器上的远程查询超时设置为 0。

我们的下一步将是关闭销售服务器上的防病毒程序,以检查这是否会导致问题。

有没有人有任何线索或想法,我可以在哪里进一步搜索以找到问题?

Jos*_*ell 6

这并没有回答你关于为什么第 11 天查询很慢的问题,但希望它有助于澄清为什么它在 10 分钟后失败。

你提到:

链接服务器上的远程超时设置为 0。

直觉上,这似乎没有限制。

它实际做的是使用sp_configure默认的远程查询超时,即 600 秒(10 分钟)。

链接服务器上的查询超时设置为更高的值,可能是 1200 秒(20 分钟),可能会让您的工作完成。并且希望工作完成将提供一些洞察为什么在这个特定的一天需要这么长时间。

我认为该设置有点令人困惑,正如网站上讨论的另一个问题:Linked server connections to Multi-subnet failover cluster