Sql server 在网站上查询表很慢,但通过SSMS查询表很快,而且它们都有相同的执行计划

Sql server 在网站上查询表很慢,但通过SSMS查询表很快,而且它们都有相同的执行计划,sql-server,performance,Sql Server,Performance,根据SQLServerProfiler,从我们的网站运行以下查询需要5-8秒,但是当我在SQLServerManagementStudio中执行相同的查询时,它会立即返回 SELECT * FROM MemberConversations JOIN [User] AS Member ON MemberConversations.UserId = Member.UserId LEFT JOIN Photo ON Member.MainPhotoId = Photo.PhotoID AND

根据SQLServerProfiler,从我们的网站运行以下查询需要5-8秒,但是当我在SQLServerManagementStudio中执行相同的查询时,它会立即返回

SELECT *
FROM MemberConversations
JOIN [User] AS Member ON MemberConversations.UserId = Member.UserId
LEFT JOIN Photo 
  ON Member.MainPhotoId = Photo.PhotoID 
 AND Photo.Discriminator = 'PublicPhoto'
LEFT JOIN Agency 
 ON Member.AgencyId = Agency.AgencyId
WHERE ConversationId = @conversationId
这个查询只返回两条记录,MemberConversations表中只有大约30行

在阅读了许多关于类似问题的答案后,我回顾了应用程序和SSM的执行计划,它们是相同的:

如果这是一个死锁或阻塞问题,我会认为这也会影响在SSMS中运行的查询。传入的每个请求都会启动一个新事务,然后在请求结束时提交该事务。我正在使用读取提交隔离级别

该网站使用Dapper执行其数据库查询


有什么想法吗?

在SSMS中运行之前是否清除缓存?@lad2025我已尝试清除缓存并执行查询,因为同一用户和SSMS仍然会立即返回。如果有帮助的话,在应用程序中,我使用Windows Auth从另一台机器(使用镜像本地帐户)连接。也许这个链接可以帮助您解决这个问题@user2340218根据我对参数嗅探的理解,它归结为由于缓存而导致的执行计划效率低下。我认为情况并非如此,因为执行计划是相同的。安装
sp\u whoisactive
并使用应用程序和SSMS进行检查