当前位置: 代码迷 >> Sql Server >> 100w+数据查询非常慢,
  详细解决方案

100w+数据查询非常慢,

热度:166   发布时间:2016-04-24 09:25:58.0
100w+数据查询非常慢,求助~
求大神帮忙解决查询效率问题,100w+数据分页查询很慢,SQL如下:select top 100  field.id,name,inter.iflag,sort_id,fdate from  larfield field, larinter inter  where field.id>(select isnull(MAX(id),0) from (select top 0 field.id from  larfield field, larinter inter  where  field.id=inter.id  and field.name like '%合同%'  order by  field.id) a) and  field.id=inter.id  and field.name like '%合同%'  order by  field.id
说明一下:这几个列都为非聚集索引,上面的SQL去掉联合查询也很慢。并且,还有个问题,在一样的数据库,在测试服务器查询稍快点,需5秒左右。在正式服务器上却需要15秒。
------解决思路----------------------
SELECT id,name,iflag,sort_id,fdate 
  FROM (
        select field.id,name,inter.iflag,sort_id,fdate,
               ROW_NUMBER() OVER(ORDER BY field.id) rn
         from  larfield field, 
               larinter inter 
         where field.id=inter.id
           and field.name like '%合同%'
       ) t
 WHERE rn BETWEEN 1 AND 100

这个可能会快点,至少like '%合同%'只要做一次。
不过数据量在那里,快不了多少。
------解决思路----------------------
关键是 name like '%合同%' 需要全表检索,大数据这样的操作只能慢了。