首页 新闻 会员 周边

linq查询千万级数据

0
悬赏园豆:10 [已解决问题] 解决于 2018-12-07 10:44

linq查询千万级数据,.Count()的时候很慢,求怎么优化。
SELECT COUNT(Id) FROM [TB_Sms_Log],id有索引。

请叫我小冯哥哥的主页 请叫我小冯哥哥 | 初学一级 | 园豆:194
提问于:2018-12-07 09:59
< >
分享
最佳答案
1

你的select count 后面有查询条件吗,如果有的话就优化一下索引吧,如果没有的话再想想别的办法,比如,主键是不是连续的整数,能从主键本身看出数量吗,或者在插入这个表数据的同时在另一个地方记录这个表里数据的数量等

收获园豆:4
会长 | 专家六级 |园豆:12401 | 2018-12-07 10:30

好的,多谢。

请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:37
其他回答(4)
0

看一下实际执行的 sql ,然后优化索引

收获园豆:3
dudu | 园豆:30994 (高人七级) | 2018-12-07 10:05

单独把sql拿出来测试一下,三千万的数据 select count(id) from table (id加了索引),查询时间17s。。。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:07

@请叫我小冯哥哥: 有查询条件吗?没有查询条件的话给id加索引,对于这条sql并没有毛用啊

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2018-12-07 10:31

@会长: 没有条件。感谢您的回答。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:38
0

这...3000万数据17秒,服务器该有多破,还是代码有多烂...

收获园豆:3
爱编程的大叔 | 园豆:30839 (高人七级) | 2018-12-07 10:09

哎,把生成的sql放到数据库里执行,得出的结果,17秒。代码我看了 没有太大的毛病。现在考虑硬件问题了。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:12

@请叫我小冯哥哥: 你说了半天等于啥都没说。

  1. 没有代码
  2. 没有硬件。
    所以网友给的标准答案就是 DUDU那种,你看书吧,只是 DUDU说得文雅一些。
支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2018-12-07 10:25

@爱编程的大叔: 多谢大佬提醒,第一次在这个上面提问题。谢谢。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:36
0

加上where id,速度会快很多。

无限REIZ | 园豆:3 (初学一级) | 2018-12-07 10:45

谢谢。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:46
0

SQL都这么慢了,你还用linq,那更慢。你这条语句肯定复杂,什么group、in的,尝试分开执行那几部分,查询出的数据可以先临时放一个表,然后逐个合并上去看看问题在哪部分。

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-12-07 10:45

谢谢,现在改成了存储过程。好多了。

支持(0) 反对(0) 请叫我小冯哥哥 | 园豆:194 (初学一级) | 2018-12-07 10:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册