SQL Server 语句(菜鸟提问)

零度的折翅 零度的折翅 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题描述:有表 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,所以我总超时,有没有办法一条语句搞定,这样就很难超时。
各位高手们,请不吝赐教!
...全文
评论 29
收藏 已收藏
分享
返回顶部
零度的折翅
应用实例 27,579 成员 68,540 内容