linq查询千万级数据,.Count()的时候很慢,求怎么优化。
SELECT COUNT(Id) FROM [TB_Sms_Log],id有索引。
你的select count 后面有查询条件吗,如果有的话就优化一下索引吧,如果没有的话再想想别的办法,比如,主键是不是连续的整数,能从主键本身看出数量吗,或者在插入这个表数据的同时在另一个地方记录这个表里数据的数量等
好的,多谢。
看一下实际执行的 sql ,然后优化索引
单独把sql拿出来测试一下,三千万的数据 select count(id) from table (id加了索引),查询时间17s。。。
@请叫我小冯哥哥: 有查询条件吗?没有查询条件的话给id加索引,对于这条sql并没有毛用啊
@会长: 没有条件。感谢您的回答。
这...3000万数据17秒,服务器该有多破,还是代码有多烂...
哎,把生成的sql放到数据库里执行,得出的结果,17秒。代码我看了 没有太大的毛病。现在考虑硬件问题了。
@请叫我小冯哥哥: 你说了半天等于啥都没说。
@爱编程的大叔: 多谢大佬提醒,第一次在这个上面提问题。谢谢。
加上where id,速度会快很多。
谢谢。
SQL都这么慢了,你还用linq,那更慢。你这条语句肯定复杂,什么group、in的,尝试分开执行那几部分,查询出的数据可以先临时放一个表,然后逐个合并上去看看问题在哪部分。
谢谢,现在改成了存储过程。好多了。