Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 远程删除不一致地达到资源限制/超时_Sql_Sql Server_Timeout_Sql Server 2014 - Fatal编程技术网

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

Sql 远程删除不一致地达到资源限制/超时,sql,sql-server,timeout,sql-server-2014,Sql,Sql Server,Timeout,Sql Server 2014,我的SQL代理作业每天早上4点运行。它有10个步骤 在过去的几周里,由于这个错误,它每周都会在步骤3失败几次 链接服务器“RemoteServerName”的OLE DB提供程序“SQLNCLI11” 报告了一个错误 提供程序终止了执行,因为 已达到资源限制。[SQLSTATE 42000](错误7399) 无法从链接服务器的OLE DB提供程序“SQLNCLI11”获取行集 “RemoteServerName”。[SQLSTATE 42000](错误7421) 链接服务器“RemoteServ

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

在过去的几周里,由于这个错误,它每周都会在步骤3失败几次

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

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

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

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

  • 当步骤3成功时,持续时间为1-7分钟

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

  • 两台SQL服务器的“远程查询超时”都设置为600秒(10分钟)

奇怪的是,第3步的全部内容只是一个简单的DELETE语句

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

  • 是否有更有效的方法从远程表中删除约1000000条记录

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


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

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

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

    如果您感兴趣,这应该比关于批量删除的
    DELETE

    博客快得多。当我运行“TRUNCATE TABLE”时,它会立即错误地说“数据库'DbNameHere'不存在。”。但是,当我运行“DELETE FROM”时,SQL将运行。TRUNCATE TABLE对链接服务器不起作用吗?没关系,只需稍微更改一下语法即可。。EXEC[RemoteServerName].DbNameHere.sys.sp_executesql N'TRUNCATE TABLE CompanyProductLink_Copy';