ASP.net和Profiler中的查询速度非常慢,但SQL Management Studio 2014中的查询速度很快

时间:2016-03-31 19:49:15

标签: asp.net sql-server linq sql-server-2014 database-administration

我有一个MS SQL查询,在ASP.NET(EF Linq)中运行大约需要40秒。 我在Profiler中捕获了它,它显示持续时间约为40秒:

enter image description here

但是,当我在 SQL Management Studio 中复制/粘贴它时,它会在00:00:00秒运行。它在单个表上是一个简单的select(没有连接,视图,存储过程),它返回大约10.000行。

执行计划:

enter image description here

我读到this question on StackOverflow女巫指向this blog并放置

  

设置ARITHABORT OFF

在Management Studio中的查询之上,但这并不会让它变慢,所以我不认为这是问题所在。

奇怪的是,我们使用Windows 2012 / SQL 2014 Web Edition将应用程序迁移到速度更快的服务器,从那时起查询似乎运行得更慢。在使用SQL Express 2008R2的旧Windows 2008R2服务器上,相同的查询运行速度要快得多。

2 个答案:

答案 0 :(得分:0)

看起来返回的列中的数据量是问题所在。我将它缩小到所需的最小列数,并且变得更快。我希望文本列在应用程序中特别慢,但它似乎不会影响Management Studio中的相同查询。

PS。在注意到性能提升后,我在原始SQL中重写了整个内容,并且查询持续时间降至接近0秒。

答案 1 :(得分:0)

我认为某些行已被另一个操作锁定,这会影响您尝试获取的数据,但尚未提交。尝试此操作以选择语句

SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT * FROM tblA WHERE something