`
石头的日记
  • 浏览: 200808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

sql分页

阅读更多

SQL分页语句

有关分页 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分页查询原理讲解

    本篇将深入讲解SQL分页查询的原理,并结合示例进行详细说明。 首先,让我们了解基本的SQL分页查询方法。在SQL Server中,我们可以利用`TOP`关键字来限制返回的行数,从而实现分页。假设我们有一个名为`Student`的表...

    sql分页存储过程

    sql分页存储过程 CREATE PROCEDURE [dbo].[dbTab_PagerHelper] @TableName VARCHAR(50), --表名 @FieldNames VARCHAR(1000), --显示列名,如果是全部字段则为* @WhereString VARCHAR(256) = NULL, --查询条件 ...

    三种数据库SQL分页方法详解

    ### 三种数据库SQL分页方法详解 在数据库查询过程中,分页是非常常见且重要的一个功能。它可以帮助我们更高效地处理大量数据,特别是在构建大型应用系统时,分页技术能够显著提升用户体验。本文将详细介绍三种...

    java中对sql分页PageBean

    java中对sql分页PageBean

    flex http 请求进行 动态sql分页

    一个flex 的表格分页采用http请求,包含待查询条件的分页,后台取得参数进行sql分页

    分页(sql分页基本上通用,条件和想要显示的内容只要在外边加上就可以了)

    本文将基于提供的SQL分页存储过程,详细介绍其工作原理及实现细节。 #### 二、存储过程概述 此存储过程名为`PAGINATION_JHGL`,主要功能是根据传入的参数实现对数据库表中的数据进行分页查询。下面我们将逐一分析...

    sql分页查询

    ### SQL分页查询详解 #### 一、引言 在数据库操作中,分页查询是一项非常重要的技术。尤其是在处理大量数据时,一次性加载所有数据到前端不仅效率低下,还可能导致性能问题。通过分页查询,我们可以按需获取数据,...

    SQL分页加载数据demo

    "SQL分页加载数据"是指通过SQL查询来实现数据的分批次、按页展示,以提高性能和用户体验。下面我们将深入探讨SQL分页加载数据的相关知识点。 1. **基本概念**:分页是将数据集分割成若干个固定大小的部分,每个部分...

    Oracle的SQL分页实践

    在Oracle数据库中,SQL分页是一种非常常见的查询技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这对于提高用户体验和优化系统性能至关重要,尤其是在处理大数据量的Web应用中。本实践...

    常用数据库sql分页

    数据库SQL分页技术 数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其...

    通用的存储过程sql分页查询语句

    本文将深入探讨通用的存储过程SQL分页查询语句及其背后的原理。 首先,理解存储过程。存储过程是一组预先编译好的SQL语句,存储在数据库服务器中,可以按需调用执行。它的优点包括提高性能、减少网络流量、增强安全...

    速度最快sql分页存储过程

    ### 速度最快SQL分页存储过程详解 #### 概述 在数据库操作中,分页查询是一种非常常见的需求。为了提高查询效率并优化用户体验,设计一个高效、灵活且易于使用的分页存储过程变得尤为重要。本文将详细介绍一个被...

    SQL分页读取海量数据存储过程

    本文将深入探讨如何通过存储过程实现SQL分页读取海量数据。 首先,理解“分页”概念是至关重要的。分页是指将大量结果集分成多个小部分(页),每次只显示一页,用户可以逐页浏览。这在Web应用中非常常见,如搜索...

    .net生成sql分页高性能语句类

    传统的SQL分页方法,如使用`TOP`或`LIMIT`子句,往往需要配合`ORDER BY`,这可能导致全表扫描,性能较低。标题提到的".net生成sql分页高性能语句类"正是为了解决这一问题,它提供了一种无需在SQL Server中编写存储...

    session,sql分页

    在J2EE应用程序开发中,`session`和`SQL分页`是两个非常重要的概念,尤其是在处理用户交互和大量数据时。本文将深入探讨这两个主题,并结合SQL Server数据库的使用来阐述它们在实际开发中的应用。 首先,让我们来...

    oracle sql分页语句

    Oracle SQL分页语句是数据库查询中的一个重要概念,它允许我们从海量数据中按需获取特定范围的结果,比如第一页、第二页等。在Oracle数据库系统中,实现分页查询通常使用ROWNUM伪列或者结合RANK()、DENSE_RANK()、...

    sql分页、jsp分页

    jsp分页、PLSQL中用Group by和Having来实现分组统计、SQL_server_海量数据库查询优化及分页算法、SQL_SERVER数据库中实现快速的数据提取和数据分页、SQLServer 2005下的分页SQL、sql分页查询、sql数据库模糊查询分页...

    SQL简单分页教程~~~详细

    **SQL分页教程详解** SQL分页是一种在数据库中实现数据检索时,限制返回结果集大小的方法,使得用户可以逐页浏览大量数据。本教程将详细介绍一个简单的SQL分页实现,适合初学者理解。 ### 基本原理 SQL分页的核心...

Global site tag (gtag.js) - Google Analytics