如何解决如果通过sp_executesql通过应用程序运行而不是在SSMS上进行常规参数化查询,为什么查询会花一些时间?
因此,我有一个查询,有时在C#Web API应用程序中超时。它将很好地开始,然后在将来的某个时候它将开始超时,然后从超时开始,除非进行了某些操作。
查询是使用Dapper构造的,当我在服务器上运行跟踪时,我可以接收到有问题的查询。如果我在我的机器上按原样运行它(它使用exec.sp_executesql N'query'),它也需要花费一些时间才能运行。我把它交给我的同事,对他来说只需要2秒钟即可运行。这是我的第一个问题,如果相同的查询仍在使用相同的服务器和数据库,为什么在不同的计算机上执行相同的查询会产生显着差异?
第二,如果我进行文本查询并将其转换为普通的t-sql并运行它,则只需再花费2秒。这导致我最可能的原因,但也有疑问,这是参数嗅探导致性能下降的情况吗?
我尝试运行与跟踪所捕获内容完全相同的查询,并在末尾添加"
,然后在2秒内运行。以前,我还可以通过在查询所使用的主表上的索引严重分散来重建索引,从而解决问题。但是,今天第一次没有任何效果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。