我的生产系统中有一个非常奇怪的情况出现在今天的工作中。想知道是否有人看到过这样的东西,对我有很好的解释。基于不同的客户端与sql server进行通信的不同结果
我们在Sql Server 2014中有一个存储过程,当我们的.NET系统调用它时,它并没有返回任何数据。
我们使用Sql Profiler捕获了调用,并在Sql Management Studio中使用相同的Sql Authentication凭据重播它,并且它按照预期返回结果。
无论我们互换地尝试过多少次,它们都是一致的,因为当客户端是.NET客户端时,它没有给出任何结果,并且当它是SSMS时它工作正常。请记住,它完全相同的sp,params等。
我们通过执行SP重新编译来解决问题,但感觉像是临时解决方案,不知道原始原因意味着它可以在不发出警告的情况下重新发生。此外,我的印象是,sp重新编译只会影响性能问题,而不会影响结果。
有没有人见过这个?你能解释为什么一个sp重新编译修复它吗?
非常感谢!
感谢您的回应!我可以看到这是一个讨论的兔子洞,但值得拥有!我将把这件事带回我的团队,并且可以对你推荐的主题做进一步的研究。再次感谢! – DancingZorba