- 浏览: 930585 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
插入数据:(2万条,用更多的数据测试会明显一些)
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=20000
begin
insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF
-------------------------------------
分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
-------------------------------------
分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
-------------------------------------
分页方案三:(利用SQL的游标存储过程分页)
create procedure XiaoZhengGe
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
--第一个参数肯定是打开的游标的句柄;第二个是执行的sql语句;第三个是游标的滚动行为;
--第四个并发性的属性;第五个是指返回的结果集的记录数
--sp_cursoropen 定义与游标和游标选项相关的 SQL 语句,然后生成游标。
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
--sp_cursorfetch 从游标中提取一行或多行。
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
--sp_cursorclose 关闭并释放游标。
exec sp_cursorclose @P1
set nocount off
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
发表评论
-
数据权限
2012-10-30 12:47 10821 创建用户test 用户映射 映射到此登录名用 ... -
索引问题
2012-07-26 10:18 722//唯一行索引 create unique index 字段 ... -
SqlServer添加修改删除字段
2012-07-26 09:22 1102SqlServer(Transact-SQL): 添加 ... -
仅当使用了列的列表 并且 identity_insert 为 on 时 才能在表 中为标识列指定显式值。
2012-03-08 14:31 2280SET IDENTITY_INSERT products2 O ... -
sql server触发器
2010-10-28 11:21 1267最近在使用触发器实现数据同步,中间遇到两个问题问题一 大字段不 ... -
往Sqlserver插入数据报错:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
2010-04-19 11:19 2085在新闻表中有一个字段:Content Text类型其他方面都 ... -
sql server2005数据库备份恢复出错
2010-04-06 15:25 2573现象:备份成功,还原时提示--System.Data.SqlC ... -
创建链接服务器(oracle,sql server,access,excel)
2010-04-05 16:55 2928/////////////////////////////SQ ... -
SQL COUNT DISTINCT 函数
2010-03-23 16:40 1802SELECT COUNT(DISTINCT ... -
分解字符串-sql中执行带参数的函数
2010-03-12 16:22 1778set ANSI_NULLS ONset QUOTED_IDE ... -
过滤html
2010-01-19 17:33 972create function [dbo].f_FilterH ... -
使用正则表达
2010-01-19 17:31 984先创建自定义函数------- ... -
SQL中LEN ()与DATALENGTH ()
2010-01-04 16:42 1608LEN ( string_expression )参数:要计算 ... -
SQLServer2005新增序列功能的几个函数:ROW_NUMBER, RANK, DENSE_RANK, and NTILE
2009-12-07 15:43 11301 ROW_NUMBER SELECT Produ ... -
sqlserver数据库收缩
2009-11-03 21:26 1114有时候因为数据库日志文件过大,日志无须保存,清理空间 ... -
修改sqlserver密码
2009-10-09 09:06 1390验证的时候,选择按照Windows身份验证,就直接进去了……汗 ... -
获取SQL Server数据库元数据的方法
2009-10-02 14:06 1638数据简介元数据 (metadata) 最常见的定义为“有关数据 ... -
SQL数据导入导出大全
2009-09-13 17:57 1348******* 导出到excelEXEC master..xp ... -
insert into 后获得自动插入的id(select @@identity)
2009-06-23 17:11 2649当运行完插入语句后,执行select @@identity ... -
不同服务器数据库导入方法2
2009-05-11 10:16 1297这个是建连接的方法 还没有实践过 不同服务器数据库之间的数据 ...
相关推荐
分页存储过程 分页存储过程 分页存储过程 sql代码
ASP.NET 存储过程分页是一种在Web应用中实现高效数据检索的技术,它结合了数据库存储过程和分页策略,以提高性能并减轻服务器负担。在这个主题中,我们将深入探讨如何在ASP.NET环境中利用存储过程来实现数据的分页...
ibatis调用oracle存储过程分页
本话题将深入探讨“存储过程分页”以及与之配合使用的“分页控件”,帮助你理解这两种技术的核心概念及其应用。 首先,我们来讨论“存储过程分页”。存储过程是预编译的SQL语句集合,它在数据库服务器上执行,可以...
### 经典存储过程分页代码解析 #### 一、概述 在数据库操作中,分页查询是一项常用且重要的技术,特别是在数据量较大时,合理的分页能够显著提高查询效率和用户体验。本文将深入分析一个经典存储过程实现的分页...
### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...
#### 存储过程分页概述 存储过程是一种预先编译好的 SQL 代码块,存储在 SQL Server 数据库中。使用存储过程进行分页查询的好处包括:提高执行效率、增强代码复用性以及提供更好的安全性等。 #### 示例存储过程分析...
当我们谈论“SQL高效存储过程分页”时,我们主要关注如何利用存储过程来实现数据库查询的分页效果,这在大数据量的场景下尤为重要,因为直接查询所有数据可能会导致性能下降,甚至阻塞数据库服务。 分页是Web应用...
总结来说,实现ASP.NET的存储过程分页,需要结合后端代码和数据库存储过程,利用GridView控件的分页特性,以及适当的导航按钮和错误处理机制。这样,用户可以方便地浏览和导航大量数据,同时减轻服务器负担,提升...
### 利用存储过程分页的示例 在数据库管理中,存储过程是一种预先定义并编译好的SQL程序,它可以接受输入参数,并返回一个或多个结果集或返回值。存储过程能够提高应用程序性能、增强代码重用性以及提高数据的安全...
### SQL存储过程分页代码详解 #### 一、概述 在数据库操作中,分页查询是一种常见的需求。尤其是在处理大量数据时,为了提高查询效率和用户体验,通常会采用分页的方式来展示数据。本文将详细解析一个SQL Server中...
存储过程分页实现实例源码 源码描述: Filename: PeterPageList * Description: 主要运用sql存储过程进行分页实现,在进行分页实现,需要注意一下事项, * 在项目的根目录下面有一个db文件夹,请认真阅读,里面包含...
Oracle 提供了多种方法实现分页查询,下面我们将详细探讨Oracle存储过程中的分页实现。 1. **ROWNUM伪列** 在早期的Oracle版本中,ROWNUM伪列被广泛用于分页。ROWNUM是在结果集生成时自动分配的,表示每一行的顺序...
### 最简单的SQL Server数据库存储过程分页 #### 知识点概述 在处理大量数据时,分页查询是一项常见的需求。传统的T-SQL分页方法可能会导致性能问题,尤其是在面对百万级别的数据集时。本文介绍一种简单且高效的...
分页存储过程 分页存储过程分页存储过程分页存储过程
高效分页存储过程的实现对于优化数据库性能至关重要。本文将深入探讨如何创建和使用高效的分页存储过程,并针对SQL Server 2005及2010提供一个实用的例子。 首先,理解分页的基本概念。分页通常涉及到两个关键参数...
二、存储过程分页的优势 1. 性能优化:存储过程在服务器端编译一次,后续执行时直接调用,减少了SQL解析的时间。 2. 安全性:通过存储过程,可以限制对数据库的直接访问,减少SQL注入的风险。 3. 代码复用:存储...
利用SQL游标存储过程分页方案,以前用过,应该还行