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键上建立聚集索引,当前查询都不会载入非当前页面的数据,我这里仅仅是个例子,楼主可以再测测看