每60秒(尖锐)我在存储过程中的T-SQL SELECT语句中遇到延迟,我不知道为什么会发生这种情况。我怀疑是一个配置错误或SQL服务器错误,但我将此作为一个问题发布给社区,希望有人解决了这个谜。
我有一个名为uspLoadDocument
的存储过程,用于在用户单击文档列表项时加载文档。通常情况下,该程序响应速度非常快,但每60秒钟它会“挂起”5-6秒(平均),然后才能正常继续(无例外)
关于这种延迟的事实;
技术信息;
SQL事件探查器屏幕转储,显示存储过程内select-statement的典型延迟(持续时间较长)。左侧转储显示每60秒发生的异常。右侧显示正常执行。
我已经试着找出这些延迟的原因,差不多三个星期了,并且不知道它可能是什么。可以指出正确方向的线索非常受欢迎
可能的解决方案
在我的存储过程中,我有一个select-statement,可以从表值函数中进行选择。此函数未声明为WITH SCHEMABINDING。 将SCHEMABINDING添加到表值函数后,延迟消失了。在我不使用SCHEMABINDING时,查询优化器正在进行一些繁重的处理。