mssqlserver优化分页2种方法详细比较
测试数据 1000 条;
采用存储过程procedure;
2,存储过程procedure:
create procedure pro_page
@pagecont int,
@pageon int
as
select top(@pagecont) id,zifu from test_1 where id not in (select top(@pagecont*@pageon) id from test_1);
go
exec pro_page 10,4;
@pagecont int,
@pageon int
as
select top(@pagecont) id,zifu from test_1 where id not in (select top(@pagecont*@pageon) id from test_1);
go
exec pro_page 10,4;
create procedure pro_pages
@pagecont int,
@pageon int
as
select top(@pagecont) * from test_1
where (id > (select MAX(id) from (select top(@pagecont*@pageon) id from test_1 order by id) AS T)) order by ID
go
exec pro_pages 10,4;
@pagecont int,
@pageon int
as
select top(@pagecont) * from test_1
where (id > (select MAX(id) from (select top(@pagecont*@pageon) id from test_1 order by id) AS T)) order by ID
go
exec pro_pages 10,4;
3,测试结果:
A. select top(10) * from test_1 where id not in (select top(10*?) id from test_1);
B. select top(10) * from test_1 where (id > (select MAX(id) from (select top(10*?) id from test_1 order by id) AS T)) order by ID");
执行效率B>A, 当A分页数越大时效率就越差,B无论页数是多少效率都一样
注意:测试数据数量要足够多,100页以上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。