mssqlserver分页2种方法,很多人都选择了最差的一种
来源:互联网 发布:淘宝怎么开通直播权限 编辑:程序博客网 时间:2024/05/16 04:44
mssqlserver优化分页2种方法详细比较
1,测试条件: 写一个JDBC链接数据库的方法,执行查询;
测试数据 1000 条;
采用存储过程procedure;
2,存储过程procedure:
-------------------> 分页-1代码
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;
------------------------> 分页-2代码
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,测试结果:
分页-2经过测试无论显示第几页的数据效率都是一样在1-2s就显示出来。
分页-1经过测试当分页值越大就越慢,在得到第一页需要1-2s,如果显示第99页是大约1M才显示出来,如果数据更多瓶颈就更严重。
可以看出2种分页效率差距之大,但是很多人在分页时都用的方法-1。
4,纯sql语句分页:
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页以上。
- mssqlserver分页2种方法,很多人都选择了最差的一种
- 大概很多人都忘却了“工信部”的前身了
- MSSQLServer数据库的分页问题
- MSSQLServer数据库的分页问题
- 为什么很多程序员都选择跳槽?--你知道的!
- 很多很多计划都搁浅了
- 为什么还是有很多人都选择NATIVE APP
- 为什么很多人都选择 OS X + Vim + IntelliJ IDEA?
- ASP中建立Excel对象,Excel进程总是无法释放(看了网上的很多帖子,两种方法,但是都不是很好)
- 很多东西大家都知道,真正做到的人也许就成功了,努力吧
- Java的很多方面都比较了解了
- 今天被问到一些PHP的基础问题一下子被问住了。。唉,人老了很多基础都忘了
- 最差情况为线性时间的选择
- REDIM陷阱(很多人都看过了吧)
- 题目1019:简单计算器(两种方法解决,一种超简单,一种超复杂)都利用了栈
- 内部晋升越来越困难,但是外部来的大P越来越多,所以很多人都选择跳槽
- 为什么很多程序员都选择跳槽?
- 为什么很多程序员都选择跳槽?
- Android流量监控
- ucore lab1
- 小心NLS_SORT和NLS_COMP的设置成为性能杀手
- dm8148 开发记录 六 dsp和arm 端 opencv测试时间
- nls_sort和nlssort 排序功能介绍
- mssqlserver分页2种方法,很多人都选择了最差的一种
- 排序专题(八) / 不稳定的内部排序 / 希尔(shell)排序
- 使用Windows API操作注册表
- Android SurfaceView 学习
- 轻松学习RSA加密算法原理
- servlet3.1规范翻译:第9章 分派请求
- oracle 排序
- ucore lab1 任务二
- Debug命令