请高手指点 ,sql server 数据库中表eligibleYouth有记录56万条,如何分页查询速度控制在5秒以内,详见如下:
我的机器配置:P4 2.8G 内存 512
现项目经理给一个死任务:
不管使用什么方法,让第一次显示最后一页的速度在5秒内,页面大小为50条记录。
也就是说,第一次显示的页面是分面后最后一页的数据。
我的数据库中的这个表没有进行任何的优化,主键是id.
我试了在查询分析器中运行下面的语句:
select top 50 * from EligibleYouth
where id >(select max( id)
from(select top 559950 ID
from EligibleYouth
ORDER BY id) AS EligibleYouth )
ORDER BY ID
所要的时间都在10秒以上,请高手指点,如何才能提高第一次显示最后一页的速度,数据库要做什么样的优化,跪求!!!!
问题点数:0、回复次数:8Top
1 楼fancyf(凡瑞)回复于 2005-06-02 15:55:00 得分 0
http://www.webdiyer.com/
有存储过程分页的示例,我用的表变量分页的办法并对自己的数据库做了优化修改,300万记录最后一页1600-1800毫秒,第一次打开3000-3500毫秒Top
2 楼dapang731(大胖)回复于 2005-06-02 16:25:46 得分 0
select *
from EligibleYouth
where id >559950Top
3 楼_jfeng(静心)回复于 2005-06-02 16:31:58 得分 0
http://mildgibson.blogchina.com/1649365.html
http://community.csdn.net/Expert/topic/3292/3292678.xml?temp=.1621515Top
4 楼cnwtugo1(诚请指教)回复于 2005-06-02 16:33:11 得分 0
TO fancy(凡瑞)我是想看到算法,和表是如何优化的啊。Top
5 楼chenzhanyiczy(hi)回复于 2005-06-02 17:38:41 得分 0
方法有很多种,比如重载FILL方法、使用游标、使用存储过程,最好的是用存储过程Top
6 楼fancyf(凡瑞)回复于 2005-06-02 18:31:05 得分 0
我给你的网站中有“代码工具”
http://www.webdiyer.com/utility/procgen.aspx
你用这个工具根据你自己的情况生成存储过程就行
注意ID一定要是聚集索引,才能保证最佳性能Top
7 楼mbh0210(独孤求败)回复于 2005-06-14 11:02:59 得分 0
look
Top
8 楼syspring(和风细雨)回复于 2005-06-14 11:24:23 得分 0
收藏Top




