如果通过sp_executesql通过应用程序运行而不是在SSMS上进行常规参数化查询,为什么查询会花一些时间?

问题描述

因此,我有一个查询,有时在C#Web API应用程序中超时。它将很好地开始,然后在将来的某个时候它将开始超时,然后从超时开始,除非进行了某些操作。

查询是使用Dapper构造的,当我在服务器上运行跟踪时,我可以接收到有问题的查询。如果我在我的机器上按原样运行它(它使用exec.sp_executesql N'query'),它也需要花费一些时间才能运行。我把它交给我的同事,对他来说只需要2秒钟即可运行。这是我的第一个问题,如果相同的查询仍在使用相同的服务器和数据库,为什么在不同的计算机上执行相同的查询会产生显着差异?

第二,如果我进行文本查询并将其转换为普通的t-sql并运行它,则只需再花费2秒。这导致我最可能的原因,但也有疑问,这是参数嗅探导致性能下降的情况吗?

我尝试运行与跟踪所捕获内容完全相同的查询,并在末尾添加",然后在2秒内运行。以前,我还可以通过在查询所使用的主表上的索引严重分散来重建索引,从而解决问题。但是,今天第一次没有任何效果

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)