Sql server SQL Server代理-信号量超时

Sql server SQL Server代理-信号量超时,sql-server,semaphore,Sql Server,Semaphore,我有一个SQL Server代理作业,只需一步。该步骤在本地服务器上执行存储过程,仅此而已。当作业执行(手动或计划)时,我收到以下错误。作业在大约23秒后失败 Msg 121,级别20,状态0,第0行出现传输级别错误 从服务器接收结果时发生。(提供商:TCP) 提供程序,错误:0-信号量超时时间已过期。) 但是,手动执行存储过程没有问题。我在不到一秒钟的时间内收到了正确的结果 “信号量”错误往往是硬件或网络问题。但由于作业是在本地服务器上执行的,我不清楚硬件或网络延迟是如何造成问题的 更新(我尝

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

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

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

“信号量”错误往往是硬件或网络问题。但由于作业是在本地服务器上执行的,我不清楚硬件或网络延迟是如何造成问题的

更新(我尝试过的事情) 在每一次尝试之后,我都将一切恢复到原来的状态。每一次尝试都有相同的结果(在向服务器发送RDP时有效,在其他地方失败)

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

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

我将通过以下步骤来解决这个问题

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

信号量超时主要与系统内存不足有关。因此,更新统计数据将有助于sql server正确估计内存。这将解决大多数超时问题

但是由于作业是在本地服务器上执行的

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


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

您计划以哪个用户的身份运行作业?有时,对于用户权限问题来说,这是一个误判。我已经仔细检查了用户权限-不是这样。事实上,如果我将RDP导入服务器,并从那里手动执行作业,它就会工作。用户是Windows用户(不是SQL登录),我们正在使用AD。但是,其他作业也可以。这些其他作业执行存储过程并使用相同的Windows用户。您需要一个数据点:TCP 3路握手限制为21秒。这听起来似乎接近你观察到的23秒超时。