SQL Server代理 - 信号量超时

时间:2016-11-28 15:46:44

标签: sql-server semaphore

我有一步的SQL Server代理作业。该步骤在本地服务器上执行存储过程,仅此而已。当作业执行(手动或预定)时,我收到以下错误。大约23秒后,工作失败了。

  

消息121,级别20,状态0,行0传输级别错误   从服务器接收结果时发生。 (提供者:TCP   提供程序,错误:0 - 信号量超时期限已过期。)

但是,我手动执行存储过程没有问题。我在不到一秒的时间内收到了正确的结果。

'信号量'错误往往是硬件或网络问题。但由于作业在本地服务器上执行,我不清楚硬件或网络延迟可能是一个问题。

更新(我尝试的事情)

在每次尝试之后,我都将所有内容恢复到原始状态。这些尝试中的每一个都有相同的结果(当我RDP到服务器时,无论在其他地方都失败了)。

  • 底层存储过程调用链接服务器。我删除了这些参考文献。
  • 假设问题是对AD域控制器的某种调用,我使用了SQL登录而不是Windows用户。
  • 我将作业修改为以我的身份运行(因为我可以做任何事情)。

另一个注意事项:执行时,作业无法启动。因此,它甚至没有进入存储过程。

1 个答案:

答案 0 :(得分:0)

我会按照以下步骤来解决这个问题...

1.确保查询被微调 2.确保统计数据和索引是最新的

信号量超时主要与系统内存不足有关。更新统计数据将有助于sql server获得正确的内存估计......这应该可以解决大部分超时问题

  

但是因为作业正在本地服务器上执行

我认为你的意思是,你在服务器的同一个盒子里运行工作......不是远程的......即使在这种情况下,我们也面临超时(一般),但我们通过以下步骤排除了硬件和网络问题

TCP Offloading/Chimney & RSS…What is it and should I disable it?

更改了远程登录,远程查询超时(这些可能不适用于您的错误消息)