首页 > 解决方案 > 远程删除不一致地达到资源限制/超时

问题描述

我的 SQL 代理作业每天早上 4 点运行。它有 10 个步骤。

在过去的几周里,它每周在第 3 步上失败几次,并出现此错误。

链接服务器“RemoteServerName”的 OLE DB 提供程序“SQLNCLI11”报告错误。

由于达到资源限制,提供程序终止执行。[SQLSTATE 42000](错误 7399)

无法从链接服务器“RemoteServerName”的 OLE DB 提供程序“SQLNCLI11”获取行集。. [SQLSTATE 42000](错误 7421)

链接服务器“RemoteServerName”的 OLE DB 提供程序“SQLNCLI11”返回消息“查询超时已过期”。[SQLSTATE 01000](错误 7412)。步骤失败。

奇怪的是,整个步骤 3 只是一个简单的 DELETE 语句。

DELETE FROM [RemoteServerName].DbNameHere.dbo.CompanyProductLink_Copy
  1. 如果超时设置为 10 分钟,并且错误提示“查询超时已过期”,为什么步骤持续时间在 12 到 15 分钟之间变化?

  2. 有没有更有效的方法从远程表中删除约 1,000,000 条记录?

我可以很容易地增加超时......我只是想了解

在分配了 24GB RAM 的 SSD 上运行 SQL Server v12。

标签: sqlsql-servertimeoutsql-server-2014

解决方案


删除表可能需要一些时间。假设您没有触发器或级联外键引用,请truncate table改用:

TRUNCATE TABLE [RemoteServerName].DbNameHere.dbo.CompanyProductLink_Copy;

这应该比DELETE.


推荐阅读