日期:2014-05-17  浏览次数:20467 次

SQL Server 语句(菜鸟提问)
问题描述:有表 mytable,字段 id,time,description,约束只有主键id,但是id杂乱无章,time是datetime类型。查询总数目语句:
select count(*) from mytable where time > '2013-10-10 00:00:00' and description like '%描述%';
查询某一段数据语句 :
with tabtemp as (select ROW_NUMBER() over (order by time desc) as rows, * from mytable where time > '2013-10-10 00:00:00' and description like '%描述%') select * from tabtemp where rows between 220000 and 230000 ;
目的:要完成按照一定条件查找这张表mytable(必须按照时间反排序),得到总记录数count,然后取其中的某一段,上面这个语句就是去了其中的220000 到230000之间的数据。
问题:我想用一条语句去查询,既要得到满足条件的总数目,又要其中的某一段数据。因为现在如果用2条语句,完成这个事情就耗时太多了,我测试后,如果总数据量在100w条时,我查询总数需要2-3秒,再查询后面的数据段时,rows < 30w 时,要3秒左右,如果大点,就要4-5秒,很是郁闷,因为系统现在给我的超时时间是5s,所以我总超时,有没有办法一条语句搞定,这样就很难超时。
各位高手们,请不吝赐教!

------解决方案--------------------
你这是预估执行计划还是实际执行计划?
------解决方案--------------------
楼主有qq不,方便的话,直接帮你看一下