我的SQL Agent作业每天凌晨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 Server的“远程查询超时”都设置为600秒(10分钟)。
奇怪的是,步骤3的全部只是一个简单的DELETE语句。
DELETE FROM [RemoteServerName].DbNameHere.dbo.CompanyProductLink_Copy
如果将超时设置为10分钟,并且错误显示“查询超时已过期”,为什么步长在12到15分钟之间变化?
是否有更有效的方法从远程表中删除〜1,000,000条记录?
我可以很容易地增加超时时间...我只是想了解
在分配了24GB RAM的SSD上运行SQL Server v12。
答案 0 :(得分:2)
删除表可能需要一些时间。假设您没有触发器或级联的外键引用,请改用truncate table
:
TRUNCATE TABLE [RemoteServerName].DbNameHere.dbo.CompanyProductLink_Copy;
这应该比DELETE
快得多。