远程删除不一致地达到资源限制/超时

Remote delete inconsistently hits resource limit / timeout

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

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

The OLE DB provider "SQLNCLI11" for linked server "RemoteServerName" reported an error.

Execution terminated by the provider because a resource limit was reached. [SQLSTATE 42000] (Error 7399)

Cannot fetch the rowset from OLE DB provider "SQLNCLI11" for linked server "RemoteServerName". . [SQLSTATE 42000] (Error 7421)

OLE DB provider "SQLNCLI11" for linked server "RemoteServerName" returned message "Query timeout expired". [SQLSTATE 01000] (Error 7412). The step failed.

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

DELETE FROM [RemoteServerName].DbNameHere.dbo.CompanyProductLink_Copy
  1. 如果超时设置为 10 分钟,并且错误显示 'query timeout expired',为什么步骤持续时间在 12 到 15 分钟之间变化?

  2. 是否有更有效的方法从远程删除约 1,000,000 条记录table?

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

运行 SQL 服务器 v12,在分配了 24GB RAM 的 SSD 上。

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

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

这应该比 DELETE 快得多。