【发布时间】:2017-05-02 18:14:16
【问题描述】:
今天在我们的生产系统中发生了一个非常奇怪的场景。想知道有没有人看到过这样的事情并给我一个很好的解释。
我们在 Sql Server 2014 中有一个存储过程,当我们的 .NET 系统调用它时它没有返回任何数据。
我们使用 Sql Profiler 捕获了调用,并使用相同的 Sql 身份验证凭据在 Sql Management Studio 中重放了它,它返回了预期的结果。
无论我们交替尝试了多少次,它们都是一致的,当客户端是 .NET 客户端时,它没有给出任何结果,而当它是 SSMS 时,它工作正常。请记住,它的 sp、params 等完全相同。
我们能够通过执行 SP 重新编译来解决问题,但这感觉像是一个临时解决方案,并且不知道最初的原因意味着它可以在没有警告的情况下再次发生。此外,我的印象是 sp 重新编译只影响性能问题而不影响结果。
有人见过这个吗?你能解释为什么 sp 重新编译修复它吗?
非常感谢!
【问题讨论】:
标签: sql-server-2014