我们有一个很奇怪的问题:
我们有一个返回一组数据的存储过程。此过程执行相当复杂的连接和聚合,因此执行需要 700 毫秒。
在 SQL Studio 中直接调用时,该过程总是返回正确的,并且总是需要大约 700 毫秒的时间。
但是,当通过客户端软件(C# 或 Excel)调用时,它会工作一段时间,但突然之间,该过程需要 30 秒(!)并超时。磁盘读取次数正常,但CPU在上。
这种行为持续1-2小时,然后又正常了!在此期间,当过程显示此行为时,您仍然可以在 SQL Studio 中执行该过程。此外,在客户端调用时,其他更简单的过程也会正常执行。
我用探查器检查了电话。通过客户端调用时,调用标记为“RPC”,在SQL Studio中调用时为“SQL”
所以可能程序执行正常,但是通过 RPC 的数据传输不知何故挂了。但这只是一个猜测。
有没有人有想法,或者可以指出我们的方向?我不知道在哪里看。事件日志也是空的。