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

60W数据做分页 第一次访问很慢 如何解决?
MSSQL2005,60W 真实数据,使用Top和Max组合的方式进行分页,第一次访问的时候慢(5781.250毫秒),再次访问和翻页速度就快了(31.250毫秒),个人感觉就是第一次访问之后,分页的语句就在内存里了,第二次访问直接从内存里调用,所以速度就很快了,不知道理解的对不对,还请个人达人多给指点一下啊,怎样才能提高第一次访问的速度呢?

------解决方案--------------------
不知道你所谓的“再次访问”到底是什么意思?

是对于相同的数据再查询一遍,还是查询完后,“再次查询下一页”的数据

假如是前者的话,那肯定快了,因为数据被加载到缓存中了,再次访问直接从内存中读取数据

假如再次查询下一页的话,应该没有缓存了,因为从执行计划看(TOP+MAX分页方式)

并没有把当前查询的其他页放入缓存

drop table t1

create table T1
(
id int identity(1,1),
Name varchar(50),
Remark varchar(200)
)

insert into T1 values (NEWID(),NEWID())
go 100000



drop index index_1 on t1
create unique clustered index index_1 on t1(id)


dbcc  dropcleanbuffers

set statistics io on

set statistics profile on

select top 10 * from T1 where id >(select MAX(id) from T1 where id<10*101)


--无论有没有在ID键上建立聚集索引,当前查询都不会载入非当前页面的数据,我这里仅仅是个例子,楼主可以再测测看