`
- 浏览:
38608 次
-
建立表: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 ONdeclare @i intset @i=1while @i<=20000begin insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX') set @i=@i+1endSET IDENTITY_INSERT TestTable OFF-------------------------------------分页方案一:(利用Not In和SELECT TOP分页)语句形式:SELECT TOP 10 *FROM TestTableWHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id))ORDER BY IDSELECT TOP 页大小 *FROM TestTableWHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id))ORDER BY ID-------------------------------------分页方案二:(利用ID大于多少和SELECT TOP分页)语句形式:SELECT TOP 10 *FROM TestTableWHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 20 id FROM TestTable ORDER BY id) AS T))ORDER BY IDSELECT TOP 页大小 *FROM TestTableWHERE (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 --每页行数asset nocount ondeclare @P1 int, --P1是游标的id@rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount outputselect ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页set @currentpage=(@currentpage-1)*@pagesize+1exec sp_cursorfetch @P1,16,@currentpage,@pagesizeexec sp_cursorclose @P1set nocount off其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。建议优化的时候,加上主键和索引,查询效率会提高。通过SQL 查询分析器,显示比较:我的结论是:分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用在实际情况中,要具体分析。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
mybatis中,sqlserver分页
在IT领域,尤其是在数据库管理与查询优化方面,SQL Server分页技术是数据检索中的一个关键环节。分页技术主要用于在大型数据库中实现高效的数据展示,它允许用户在不加载整个结果集的情况下,按需获取数据的特定部分...
sqlserver分页查询语句;sqlserver分页查询语句;sqlserver分页查询语句;
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
sql server分页代码 --分页【top】:不支持复合主键 SELECT TOP 10 * from Lend where id not in (SELECT TOP ((2-1)*10) id from lend ORDER BY id) ORDER BY id ; SELECT TOP 10 * from Lend where id not ...
以下是几种常用的SQL Server分页技术: 1. **TOP 和 NOT IN** 分页: 这种方法通过`TOP`关键字选取指定数量的记录,然后使用`NOT IN`子句排除已选取的记录。例如,查询第二页的记录,可以先选取前`@RecordStart`个...
**标题:“jsp+sqlserver分页”** 在Web开发中,分页是一种常见的用户界面设计技术,用于在大量数据中提供可浏览性。本项目基于`SQL Server 2005`数据库,结合`Struts`框架和`JavaBean`组件,实现了在JSP页面上进行...
本资源"SQLServer分页.rar"包含了一个名为"SQL分页.txt"的文件,里面详细讲解了SQL Server中的分页实现方法。 首先,我们来理解SQL Server分页的基本概念。分页通常涉及到两个关键参数:`OFFSET`和`FETCH NEXT`。`...
### SQL Server分页查询概述 分页查询是指从大量数据中按需取出一部分数据的过程,通常用于网页展示或大型数据报表中,以提高加载速度和减少服务器负担。在SQL Server中,实现分页查询有多种方法,包括使用`ROW_...
在SQL Server数据库管理中,分页查询是一种常用的技术,它允许用户按页面浏览大量数据,而不是一次性加载所有结果。在大型数据库中,这可以显著提高性能,减少内存消耗,并提供更好的用户体验。本篇文章将深入探讨...
在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...
SQL server2008中通用分页存储过程,表名,每页长度,页码都是动态赋值。
在SQL Server中,通过存储过程实现分页是一种常见且高效的解决方案。其核心思想是利用游标(Cursor)或临时表来获取数据总量,并根据指定的页码和每页数量来计算出需要返回的具体记录范围。这种方法的优势在于它可以...
sqlserver主从集群部署方案 在今天的IT行业中,数据库的高可用性和灾难恢复能力变得越来越重要。为了满足这些需求, sqlserver主从集群部署方案被广泛应用于生产环境中。本文将详细介绍sqlserver主从集群部署方案的...
这个例子涵盖了前端开发、后端开发和数据库管理的关键技术,为开发者提供了一个完整的EXT JS与SQL Server分页交互的参考。通过理解这些知识点,开发者可以构建类似的应用,实现高效的Web数据展示和操作。
在SQL Server中,分页可以通过多种方法实现,其中一种常见方法是使用`TOP`关键字结合`OFFSET`。然而,在较旧的SQL Server版本中,可能需要更复杂的查询结构,如在给定的代码示例中所示,使用了动态SQL和变量来构建...
关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...
在SQL Server数据库管理中,分页查询是一种常见的需求,特别是在数据量庞大的情况下,为了提高用户体验,需要快速加载部分数据而不是一次性加载所有数据。本篇资料主要探讨的是在SQL Server中,利用存储过程实现分页...
### 标准SQL Server分页存储过程:深入解析与应用 在处理大量数据时,分页技术是提高数据展示效率和用户体验的关键。SQL Server提供的存储过程是实现分页功能的有效方式之一。本文将深入探讨微软C# .NET中的宠物...