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

两条一样执行结果:
下面:很快
上面的:生成语句
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,
调试发现

上面带参的慢,
下面无参数的正常

求大神指点!
热忱回答(7)
-
fate stay night VIP0
2019/4/29查询出来绑定也要时间的
0 回复 -
fate stay night VIP0
2019/4/29你确定一点,生成的参数化SQL有没有错,如果没有错那就是数据库层面的问题
0 回复 -
fate stay night VIP0
2019/4/29SQL对的,并且这个SQL也执行慢,那就是你在看你的表有什么特别的地方
0 回复 -
fate stay night VIP0
2019/4/29你可以试试在.With("nolock").ToList()
0 回复 -
一会我就打哭你 VIP0
2019/4/29@fate stay night:
1、数据Group后就10条左右。
2、with(nolock)已经加了!
3、为啥下面的where是文本脚本就没有问题!
我也很奇怪!
0 回复 -
fate stay night VIP0
2019/4/29正常的同不同sql的sql执行计划不一样 ,数据库补丁要打全
0 回复 -
一会我就打哭你 VIP0
2019/4/29@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 回复