- 浏览: 565601 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
三种SQL分页法
表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 页记录数量 *
FROM 表名
WHERE (ID NOT IN
(SELECT TOP (每页行数*(页数-1)) ID
FROM 表名
ORDER BY ID))
ORDER BY ID
//自己还可以加上一些查询条件
例:
select top 2 *
from Sys_Material_Type
where (MT_ID not in
(select top (2*(3-1)) MT_ID from Sys_Material_Type order by MT_ID))
order by MT_ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 每页记录数量 *
FROM 表名
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 每页行数*页数 id FROM 表
ORDER BY id) AS T)
)
ORDER BY ID
例:
SELECT TOP 2 *
FROM Sys_Material_Type
WHERE (MT_ID >
(SELECT MAX(MT_ID)
FROM (SELECT TOP (2*(3-1)) MT_ID
FROM Sys_Material_Type
ORDER BY MT_ID) AS T))
ORDER BY MT_ID
3.分页方案三:(利用SQL的游标存储过程分页)
create procedure SqlPager
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
4.总结:
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
发表评论
-
java的InputStream和OutputStream的理解【转】
2015-11-09 18:10 654原文地址:http://www.cnblogs.com/spr ... -
【JSP】让HTML和JSP页面不缓存的方法
2015-10-14 10:16 487原文地址:http://blog.csdn.net/juebl ... -
jsp去掉浏览器缓存
2015-10-14 09:21 630原文地址:http://bbs.csdn.net/topics ... -
Spring定时任务的几种实现
2015-09-17 18:02 392原文地址:http://gong1208.iteye.com/ ... -
Java 8 简明教程
2015-08-31 17:43 357原文地址:http://www.iteye.com/magaz ... -
Java 8 简明教程
2015-08-28 15:30 564原文地址:http://www.iteye.com/magaz ... -
Spring 3.0 注解注入详解
2015-08-20 12:01 519原文地址:http://developer.51cto.com ... -
Apache所有项目介绍
2015-08-20 11:47 960原文地址:http://haisha.iteye.com/bl ... -
jdk5.0新特性介绍
2015-08-04 18:08 469原文地址:http://blog.sina.com.cn/s/ ... -
Apache Log4j配置说明
2015-05-18 15:59 428原文地址:http://zhangjunh ... -
ubuntu 14.04 下通过apt-get 安装jdk
2015-04-09 16:42 712原文地址:http://segmentfault.com/a/ ... -
【原创】Eclipse Class Decompiler——Java反编译插件
2015-04-01 15:00 613原文地址:http://www.blogj ... -
jvisualvm远程监控Tomcat
2015-03-06 10:19 721原文地址:http://ihuangweiwei.iteye. ... -
Java 并发核心编程
2015-01-08 18:07 622原文地址:http://www.cnblogs.com/see ... -
log4j日志文件乱码问题的解决方法
2015-01-06 18:11 829原文地址:http://blog.csdn.net/inkfi ... -
SHA1与MD5
2014-12-22 15:31 619原文地址:http://blog.csdn.net/fogle ... -
征服 Redis + Jedis
2014-12-19 13:51 399原文地址:http://snowolf.iteye.com/b ... -
Java连接redis的使用示例
2014-12-19 12:08 1079原文地址:http://blog.csdn.net/wgw33 ... -
java对redis的基本操作
2014-12-19 12:07 587原文地址:http://www.cnblogs.com/edi ... -
Eclipse Class Decompiler——Java反编译插件
2014-10-16 11:02 472原文地址:http://bbs.csdn. ...
相关推荐
本文将详细分析三种SQL分页方法的效率,并提供每种方法的示例。 首先,我们来看第一种分页方案:**Not In 和 SELECT TOP 分页**。这种方法通过先获取前n条记录,然后在主查询中排除这些记录来获取下一页的数据。...
综上所述,T-SQL提供了多种方式来实现分页查询,包括单表分页、单表有条件分页以及多表分页,每种方法都有其适用场景和优缺点。开发者应根据实际需求和数据量大小选择最合适的分页策略,以达到最佳的性能和用户体验...
传统的ADO记录集分页法因其内存占用高、效率低下而不适合大规模数据的分页查询。本文将介绍几种在SQL Server中实现分页的有效方法,并着重讨论一种基于SQL查询优化的分页技术。 #### 传统分页方法及其局限性 - **...
### SQL分页语句 #### 知识点一:SQL分页的概念与应用场景 - **概念**:在数据库查询操作中,分页是指将查询结果按照一定的规则分割成多个页面,每一页显示部分数据记录的过程。 - **应用场景**:常用于网站、应用...
从简单的ADO记录集分页法到复杂的存储过程实现,每种方法都有其适用场景。对于处理小数据量的场景,使用表变量的方法已经足够高效;而对于需要处理大量数据的情况,则推荐使用基于SQL查询的分页方法,以实现更高的...
在SQL Server数据库管理中,分页查询是一种常见的需求,特别是在数据量庞大的情况下,为了提高用户体验,需要快速加载部分数据而不是一次性加载所有数据。本篇资料主要探讨的是在SQL Server中,利用存储过程实现分页...
### JSP + SQL Server 分页代码详解 #### 一、背景介绍 在Web开发中,分页是一项常用的技术,尤其当数据量较大时,通过分页可以提高用户体验并减轻服务器负担。本文将对一个JSP结合SQL Server实现的简单分页代码...
"肤浅的SQL分页代码,急需完善"这个标题暗示了当前的分页实现可能存在问题或者效率不高,需要进行优化。下面,我们将深入探讨SQL分页的基本原理,以及如何编写高效、稳健的分页代码。 首先,让我们回顾一下基本的...
### 经过优化测试的SQL分页存储过程 在数据库管理与应用开发中,分页是一种常见的需求,尤其是在处理大量数据时。本文将基于提供的文档摘要深入探讨分页技术的相关知识点,包括传统分页方法的问题、优化后的分页...
ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态交互式网页。在处理大量数据时,分页技术是必不可少的,它能够有效地管理数据展示,提高用户体验,防止页面加载过慢。本篇文章将深入探讨...
在SQL Server中,数据分页是一种重要的查询策略,特别是在处理大量数据时,它能有效地提高查询性能并优化用户体验。分页允许用户逐步加载和查看数据,而不是一次性加载所有记录,这对大型数据库尤其必要。以下是对...
在网页开发中,分页是一种常见的数据展示方式,特别是在数据量较大的情况下,为了提高用户体验,避免一次性加载所有数据导致页面加载速度慢或者浏览器卡顿。本案例提供的“仿Google分页完整代码”就是一个PHP实现的...
本篇文章将探讨如何在Oracle数据库中实现类似MySQL的`LIMIT`分页功能,以及如何模拟SQL Server的分页方式,并介绍`INTERSECT`和`MINUS`这两个SQL运算符。 首先,`INTERSECT`运算符用于找出两个或多个查询结果中的...
在SQL Server 2000中,存储过程和分页查询是两个重要的数据库管理与查询技术。存储过程是预编译的SQL语句集合,它允许开发者封装一系列复杂的操作为一个可重用的对象,提高数据库的性能和安全性。而分页查询则是用于...
在ASP(Active Server Pages)开发中,数字分页是一种常见的技术,用于处理大量数据时,将数据分成多个页面,让用户可以逐步浏览,提高用户体验。"asp 数字分页 仿百度分页 仿谷歌分页"这个项目的目标是实现一个与...
在本项目中,"jsp+sqlserver2012实现三个班级成绩查询系统"是一个基于Web的数据库管理系统,主要用于查询不同班级的成绩。该系统利用了Java Server Pages (JSP) 技术作为前端展示,与Microsoft SQL Server 2012...
本文将详细介绍Oracle中分页查询的SQL语法,并对比不同方法的效率。 1. **无ORDER BY排序的写法**: 这种方式的效率最高,因为它避免了额外的排序操作。示例代码如下: ```sql SELECT * FROM ( Select ROWNUM ...