`
bjtdeyx
  • 浏览: 170210 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

sqlserver分页方案总结

阅读更多

有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。

方法1:
适用于 SQL Server 2000/2005

SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
          (
          
SELECT TOP 页大小*(-1) id FROM table1 ORDER BY id
          )
ORDER BY id

方法2:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
FROM table1
WHERE id >
          (
          
SELECT ISNULL(MAX(id),0
          FROM 
                (
                
SELECT TOP 页大小*(-1) id FROM table1 ORDER BY id
                ) 
A
          )
ORDER BY id

方法3:
适用于 SQL Server 2005

SELECT TOP 页大小 * 
FROM 
        (
        
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
        ) A
WHERE RowNumber > 页大小*(页数-1)


说明,页大小:每页的行数;页数:第几页。使用时,请把“页大小”和“页大小*(页数-1)”替换成数字。

 

 

 

其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。

通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用

 

方案四:使用存储过程

方案五:使用游标

分享到:
评论

相关推荐

    SQL Server 分页方案比拼

    在IT领域,尤其是在数据库管理与查询优化方面,SQL Server分页技术是数据检索中的一个关键环节。分页技术主要用于在大型数据库中实现高效的数据展示,它允许用户在不加载整个结果集的情况下,按需获取数据的特定部分...

    最简单的SQL Server数据库存储过程分页

    在SQL Server中,通过存储过程实现分页是一种常见且高效的解决方案。其核心思想是利用游标(Cursor)或临时表来获取数据总量,并根据指定的页码和每页数量来计算出需要返回的具体记录范围。这种方法的优势在于它可以...

    jsp+sqlserver分页代码

    String strConn="jdbc:sqlserver://localhost:1433;DatabaseName=abc"; conn=DriverManager.getConnection(strConn,"sa","123"); ``` - **`Class.forName`**:加载SQL Server的JDBC驱动。 - **`String strConn`**:...

    关于SQL Server SQL语句查询分页数据的解决方案

    关于SQL Server SQL语句查询分页数据的解决方案 在日常工作中,我们经常需要处理大量数据,并从中获取特定页面的数据。特别是在Web应用开发中,为了提高用户体验,通常会将数据进行分页显示。针对这一需求,本文将...

    SQLServer数据库分页查询

    ### SQL Server 数据库分页查询方法详解 #### 一、背景与问题定义 在实际的数据库操作中,分页查询是非常常见的需求之一。对于大型数据集来说,一次加载所有数据到前端显示是不现实的,这不仅会增加服务器负担,还...

    在SQL Server中通过SQL语句实现分页查询

    通过对上述三种分页方案的分析可以看出,在实际应用中应根据具体情况选择合适的分页策略。如果表中有递增的唯一标识符(如ID),那么推荐使用方案二,因为它在大多数情况下提供更好的性能。若没有这样的唯一标识符,...

    SQL Server 的通用分页显示存储过程

    ### SQL Server 的通用分页显示存储过程 #### 知识点概述 在现代Web应用程序开发中,分页是一项重要的功能,它能够有效地管理和展示大量数据,提升用户体验并优化服务器资源的利用。传统的分页方法,如ADO记录集...

    SQL Server 2000 通用分页过程

    ### SQL Server 2000 通用分页过程解析 #### 概述 在数据库查询中,分页是一项常见的需求,特别是在数据量较大的情况下。本文将深入探讨一个针对 SQL Server 2000 的通用分页存储过程。该存储过程采用 `TOP + MAX...

    sqlserver 存储过程分页(支持千万级)算法研究

    本文将深入探讨SQL Server存储过程中的高级分页技术,特别是针对千万级别数据量的场景,通过分析提供的代码示例,提炼出核心知识点,帮助读者理解和掌握高效分页查询的实现方法。 ### 1. 使用临时表和ROWCOUNT实现...

    海量数据分页sql server经典

    ### 海量数据分页在SQL Server中的实现与优化 #### 概述 在Web应用程序开发中,分页浏览是一项非常重要的功能。特别是在处理大量数据时,如何高效地实现分页变得尤为关键。传统的ADO记录集分页法因其内存占用高、...

    sqlserver 支持多表联合查询分页存储过程

    根据提供的信息,我们可以深入探讨如何在SQL Server中创建一个支持多表联合查询并实现分页功能的存储过程。本文将详细介绍存储过程的设计思路、参数解释、实现细节以及可能遇到的问题和解决方案。 ### 一、存储过程...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...

    SQL server分页

    通过本文对SQL Server分页技术的详细介绍,我们了解到从数据库层面实现分页不仅可以显著提高查询效率,还能提供更好的用户体验。掌握了这些技巧后,开发者可以更加灵活地应对各种复杂场景下的数据处理需求。

    SQL Server 存储过程的分页方案比拼.doc

    在探讨SQL Server存储过程中的分页方案时,我们主要关注三种不同的实现方法:利用`NOT IN`和`SELECT TOP`的分页、利用`ID`大于某个值与`SELECT TOP`结合的分页,以及使用SQL游标的存储过程分页。通过对这些方案的...

    SQL Server数据库三种分页方案详尽分析

    在SQL Server数据库中,分页查询是常见的操作,特别是在处理大量数据时,为了提供良好的用户体验,需要快速地加载页面内容。本文将详细分析三种分页方法,并探讨它们的优缺点。 首先,我们创建一个名为`TestTable`...

    LINQ To SQL实现分页效果源码

    总结来说,LINQ to SQL的分页功能结合了强大的查询表达能力和数据库操作的便利性,为.NET开发者提供了高效的数据访问解决方案。通过理解和实践这些步骤,你可以在你的应用程序中实现高效的分页功能。

    基于sqlserver的四种分页方式总结

    总结,SQL Server提供了多种分页方法,开发者可以根据实际需求和数据库版本选择合适的方式。在处理大量数据时,优化查询性能是非常重要的,这通常涉及索引策略、查询优化和适当的数据访问模式。同时,考虑到可维护性...

    SQL中分页解决方案

    #### 一、SQL Server 分页方案 **1.1 使用 `TOP` 关键字** 在 SQL Server 中,`TOP` 关键字常用于限制返回的结果集大小。例如,要获取表中的前五条记录,可以使用以下语句: ```sql SELECT TOP 5 * FROM 表名; ``...

    sqlserver分页的两种写法分别介绍

    总结来说,SQL Server提供了多种分页解决方案,但推荐使用SQL Server 2005及以后版本的`ROW_NUMBER()`函数,因为它具有更好的性能和可读性。在设计分页查询时,还应注意优化排序字段,避免全表扫描,以提高查询速度...

Global site tag (gtag.js) - Google Analytics