mssql百万数据查询

最近到手一个任务,一张表里有400万数据,拿来查询,一开始最简单的分页not in结果数据库一分钟都没反应,用临时表也差不多没反应.取消了.然后id>max(id)这下分页是毫秒级别的.以为完美了.结果却是没有任何条件查询的,然后放上了一个 name like '%???%'一下子查出来了.花了7秒左右,这显然不现实一个条件就要7秒,如果两个三个乃至十个,只有一个like的时候,效率慢然后换成了charindex好像是快上了那么一/两秒这也不够啊,用mssql性能分析,没有创建聚合索引提示,所以来求助

忽然笑
浏览 625回答 9
9回答

海绵宝宝撒

用select max/min吧

斯蒂芬大帝

在查询列上加索引。

开满天机

给需要like的字段加上索引,还有就是不要使用not in.如果要用也要给not in 的列,加上索引。

饮歌长啸

1.不要用select * 要用select 你要显示的字段........ 2.用存储过程分成查询,并从每页过滤

aluckdog

具体不了解,可以试试存储过程

慕村225694

存储过程也是sql语句写出来的好么...语句都运行不成功..存储过程..

BIG阳

like 查询,本身就是非常慢的,加上数据量是非常大的,再怎么优化,也不可能满足业务逻辑的需求,变通方法:如果like的关键字是有限多个,可以事先将结果计算出来,放到一个表中,每次like匹配的时候,直接到这个表中查看,不知道你明白我说的方法没,我现在的项目中,就是使用这种方式,我们的表的数据量达到千万级,adhoc查询显然不现实,预先计算好才能解决此类问题。

月关宝盒

明白你的意思..但是我这个是专门负责拿来搜索的,每次搜索的都不一样也就那么10个左右字段.

胡子哥哥

我们的库千万级,我第一次用的时候一条统计库里多少条记录的sql执行了半个小时。    以后也要学习下优化,哈哈~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server