我有一步的SQL Server代理作业。该步骤在本地服务器上执行存储过程,仅此而已。当作业执行(手动或预定)时,我收到以下错误。大约23秒后,工作失败了。
消息121,级别20,状态0,行0传输级别错误 从服务器接收结果时发生。 (提供者:TCP 提供程序,错误:0 - 信号量超时期限已过期。)
但是,我手动执行存储过程没有问题。我在不到一秒的时间内收到了正确的结果。
'信号量'错误往往是硬件或网络问题。但由于作业在本地服务器上执行,我不清楚硬件或网络延迟可能是一个问题。
在每次尝试之后,我都将所有内容恢复到原始状态。这些尝试中的每一个都有相同的结果(当我RDP到服务器时,无论在其他地方都失败了)。
另一个注意事项:执行时,作业无法启动。因此,它甚至没有进入存储过程。
答案 0 :(得分:0)
我会按照以下步骤来解决这个问题...
1.确保查询被微调 2.确保统计数据和索引是最新的
信号量超时主要与系统内存不足有关。更新统计数据将有助于sql server获得正确的内存估计......这应该可以解决大部分超时问题
但是因为作业正在本地服务器上执行
我认为你的意思是,你在服务器的同一个盒子里运行工作......不是远程的......即使在这种情况下,我们也面临超时(一般),但我们通过以下步骤排除了硬件和网络问题
TCP Offloading/Chimney & RSS…What is it and should I disable it?
更改了远程登录,远程查询超时(这些可能不适用于您的错误消息)