首页 新闻 会员 周边 捐助

EF Core模糊查询时增加了时间限制反而更慢,为什么?

0
悬赏园豆:100 [待解决问题]

这两段都是EF生成的SQL语句

第二个比第一个多了一个条件,耗时反而增加了好多

在数据库直接执行SQL代码,耗时却都差不多,几百毫秒

下面是我程序中写的代码

南清丶的主页 南清丶 | 初学一级 | 园豆:102
提问于:2021-01-31 14:01
< >
分享
所有回答(4)
0

第一次测试时间不算,改了SQL第一次一般比较慢

LiveCoding | 园豆:502 (小虾三级) | 2021-02-01 10:04

不是第一次慢,是只要加了日期条件,每次都很慢,加别的条件都不满,唯独加结束日期这个条件,就慢的离谱

支持(0) 反对(0) 南清丶 | 园豆:102 (初学一级) | 2021-02-01 10:23
0

日期字段有没有建索引

对不起,我要起飞 | 园豆:23 (初学一级) | 2021-02-01 10:41

有索引,直接在数据库执行语句的话都挺快的,就是通过程序执行时,加了时间条件的很慢

支持(0) 反对(0) 南清丶 | 园豆:102 (初学一级) | 2021-02-01 13:17
0

执行计划缓存清理一下, 表的统计信息更新一下.

可能EF执行的SQL参数版本的, 你在IDE里面执行的直接拼接好的SQL, 他们的缓存的执行计划不一样.

czd890 | 园豆:14488 (专家六级) | 2021-02-01 14:46

我没有权限操作计划缓存,还有其他方法能避免使用旧的计划缓存么

支持(0) 反对(0) 南清丶 | 园豆:102 (初学一级) | 2021-02-01 21:00
0

把你的SQL去SQL Management里面执行一下,看是否有走索引

为乐而来 | 园豆:1432 (小虾三级) | 2021-02-18 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册