欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

高效率 sql server 分页查询

更新时间: 2014-01-05 01:57:59 责任编辑: Author_N1

 

高效 SQL server 分页查询
我现在用的分页查询语句,view_table是我创建的视图,查询越到后面,速度就越慢,要十几秒,
SELECT * FROM (SELECT  * ,ROW_NUMBER() OVER(ORDER BY  Id) 
AS _ROWID_ FROM view_table
) a WHERE _RowID_>=916491 AND _RowID_<=916500
现在问题是,数据量很大,有一百万条数据,以后数据还有更多,而且有很多where条件,
怎么样才能让查询的速度快一些

--参考方法--
先检查下执行计划吧,就这么条语句很难看出啥。

说个题外话,常规来说,存在分页需求的功能,访问多半集中在前几页才合理。
--参考方法--
你这个思路不对,_RowID_>=916491 AND _RowID_<=916500和 _RowID_<=916500速度差不了多少,你应该想办法修改展示方法,不要让翻页这么多。正常没有人会要看100W数据的后20到后10这些记录的。如果一定要这么做,给你个笨方法,增加一个动态列或者表(一定要有索引),查询时先写个UPDATE或INSERT语句,把_RowID_和主键对应关系生成过去,翻页时查那个字段速度肯定快。
--参考方法--
索引---------索引
--参考方法--
SELECT * FROM (SELECT  * ,ROW_NUMBER() OVER(ORDER BY  Id) 
AS _ROWID_ FROM view_table WHERE Id>=916491 AND Id<=916500
) a 
看看
--参考方法--
我去子查询?这个能快的了啊
--参考方法--
用索引是可以的
--参考方法--
视图?
把试图也亮出来看看
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:57:59
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/3772/
本文WWW.DOC100.NET DOC100.NET版权所有。