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

标签 sql sql-server timeout sql-server-2014

My 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 步成功时,持续时间为 1 - 7 分钟。

  • 当步骤 3 失败时,持续时间为 12 - 15 分钟。

  • 两个 SQL Server 都将“远程查询超时”设置为 600 秒(10 分钟)。

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

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

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

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

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

最佳答案

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

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

这应该比DELETE快得多。

关于sql - 远程删除不一致地达到资源限制/超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632883/

相关文章:

SQL Server - THROW 之前的分号

sql-server - Sql Server - 使用 Windows 身份验证连接

sql-server - SQL Server/ODBC数据加密问题

mysql - 在 MSSQL 和 mySQL 中获取所有表及其数据

android - 在 Android 上,在被杀之前我必须响应多长时间(以及响应什么?)?

jquery - 每当将元素添加到 DOM 时,将类添加到元素

php - 使用参数从 mysqli_query 输出中获取单行,没有循环

MySQL 在连接时丢失行

sql - 递归子目录SQL问题

r - 从R中的url读取csv文件时超时