where中表达式与文本执行有差异。 返回

SqlSugar 老数据
7 2180

image.png

两条一样执行结果:

下面:很快

上面的:生成语句

SELECT  [lotno] AS [lotph] , [goodsid] AS [goodsid] , [Category] AS [category]  FROM [inoutdh] WITH(NOLOCK)   WHERE ((((( [supplyerid] = @supplyerid0 ) AND  ([inoutbz] IN ('1','3','8','9','12','18','23')) ) OR (( [unitid] = @unitid2 ) AND  ([inoutbz] IN ('2','4','5','6','7','10','11','13','14','15','19','20','21','22')) )) AND  ( CAST([goodsid] AS INT) IN ('10603','10602','10601','21608')) ) AND  ([confirmdate] BETWEEN @MethodConst5 AND @MethodConst6) )GROUP BY [lotno],[goodsid],[Category],[invalidate] ORDER BY [invalidate] DESC

{"@supplyerid0":"13","@unitid2":"13","@MethodConst5":"2018-04-29","@MethodConst6":"2019-04-29"}

sql语句直接查询很快,但返回时很慢10s,

调试发现

image.png


上面带参的慢,

下面无参数的正常

image.png

求大神指点!


热忱回答7

  • 查询出来绑定也要时间的

    0 回复
  • 你确定一点,生成的参数化SQL有没有错,如果没有错那就是数据库层面的问题

    0 回复
  • SQL对的,并且这个SQL也执行慢,那就是你在看你的表有什么特别的地方

    0 回复
  • 你可以试试在.With("nolock").ToList()

    0 回复
  • @fate stay night

    1、数据Group后就10条左右。

    2、with(nolock)已经加了!

    3、为啥下面的where是文本脚本就没有问题!

    我也很奇怪!

    0 回复
  • 正常的同不同sql的sql执行计划不一样 ,数据库补丁要打全

    0 回复
  • @fate stay night:exec sp_executesql 我也是 Sql Profiler 截取 一致性还真是!

    Microsoft SQL Server Management Studio 11.0.2100.60

    Microsoft Analysis Services 客户端工具 11.0.2218.0

    Microsoft 数据访问组件 (MDAC) 6.3.9600.16384

    Microsoft MSXML 3.0 6.0 

    Microsoft Internet Explorer 9.11.9600.17031

    Microsoft .NET Framework 4.0.30319.42000

    操作系统 6.3.9600

    目前数据服务器版本,望指点!



    0 回复