`
hz_chenwenbiao
  • 浏览: 1010482 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

三种SQL分页法效率分析(转)

SQL 
阅读更多

表中主键必须为标识列,[ID] int IDENTITY (1,1)

  1.分页方案一:(利用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

  2.分页方案二:(利用ID大于多少和SELECT TOP分页)

  语句形式:

  SELECT TOP 10 *
FROM TestTable
WHERE(ID>
     (SELECT MAX(id)
    FROM(SELECT TOP 20 id
        FROM TestTable
        ORDER BY id) AST))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE(ID>
     (SELECT MAX(id)
    FROM(SELECT TOP 页大小 * 页数 id
        FROM 表
        ORDER BY id) AST))
ORDER BY ID

  3.分页方案三:(利用SQL的游标存储过程分页)

create procedureSqlPager
@sqlstrnvarchar(4000),--查询字符串
@currentpageint,--第N页
@pagesizeint--每页行数
as
setnocounton
declare@P1int,--P1是游标的id
@rowcountint
execsp_cursoropen@P1output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcountoutput
selectceiling(1.0*@rowcount/@pagesize)as总页数--,@rowcountas总行数,@currentpageas当前页
set@currentpage=(@currentpage-1)*@pagesize+1
execsp_cursorfetch@P1,16,@currentpage,@pagesize
execsp_cursorclose@P1
setnocountoff

  其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。

  建议优化的时候,加上主键和索引,查询效率会提高。

  通过SQL 查询分析器,显示比较:我的结论是:

  分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句

  分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句

  分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用

分享到:
评论

相关推荐

    三种SQL分页法效率分析

    本文将深入探讨三种SQL分页方法:基于LIMIT/OFFSET、基于ROW_NUMBER()以及基于游标的分页法,分析它们的效率与适用场景。 1. 基于LIMIT/OFFSET的分页 LIMIT/OFFSET方法广泛应用于MySQL等支持这种语法的数据库系统。...

    海量数据分页sql server经典

    传统的ADO记录集分页法因其内存占用高、效率低下而不适合大规模数据的分页查询。本文将介绍几种在SQL Server中实现分页的有效方法,并着重讨论一种基于SQL查询优化的分页技术。 #### 传统分页方法及其局限性 - **...

    Sql server 分页存储过程的性能对比

    在"分页存储过程效率对比.doc"文档中,可能详细分析了每种方法的执行计划、资源消耗、响应时间等指标,通过实验数据来展示不同方法在实际应用中的性能差异。对比这些数据可以帮助我们理解在特定数据库结构和工作负载...

    jsp+sqlserver分页代码

    ### JSP + SQL Server 分页代码详解 #### 一、背景介绍 在Web开发中,分页是一项常用的技术,尤其当数据量较大时,通过分页可以提高用户体验并减轻服务器负担。本文将对一个JSP结合SQL Server实现的简单分页代码...

    ASP高效分页----最快的分页法,逐页翻页速度极快

    通过性能监控工具,分析分页过程中可能出现的瓶颈,如数据库查询效率、网络传输速度等,针对性地进行优化。 总结,实现ASP高效分页的关键在于优化查询策略,合理利用缓存,结合前端技术提升用户体验,并持续监控与...

    sql server实现分页的方法实例分析

    与第三种方法类似,但使用`BETWEEN`来确定行号范围: ```sql SELECT * FROM ( SELECT ppohd.doccode AS 'mydoccode', ROW_NUMBER() OVER (ORDER BY doccode) AS sno, * FROM ppohd ) AS tb WHERE tb.sno BETWEEN...

    SQL語法大全,内容很丰富实用

    SQL(Structured Query Language)是一种用于管理和处理关系数据库的标准语言,其功能强大且广泛应用于各种数据库系统,如MySQL、Oracle、SQL Server等。本篇将详细解释SQL语法中的关键概念和常用命令。 1. **...

    海量数据库的查询优化及分页算法方案

    常见的分页方法有“Row Number”法、子查询法和“Limit Offset”法(在SQL SERVER中是TOP与OFFSET-FETCH)。这些方法各有优缺点,需要根据实际场景选择。例如,“Row Number”法通过计算行号实现分页,但当数据量大...

    百万级数据库记录下的Mysql快速分页优化实例

    通过一系列实践案例和深入分析,我们将了解到在不同场景下优化MySQL分页查询的有效方法。 #### MySQL性能瓶颈分析 在进行大规模数据分页查询时,MySQL可能会遇到性能瓶颈。这些瓶颈主要体现在以下几个方面: 1. *...

    SQL Server优化50法汇总

    SQL Server优化是一个复杂而重要的任务,它涉及到数据库的性能提升,确保数据的快速访问和高效处理。以下是一些关键的优化策略,可以帮助改善SQL Server的性能: 1. **索引优化**:没有索引或未有效利用索引是查询...

    [数据库] 通用分页存储过程第1/5页

    为了提高通用性,作者分析了临时表、动态SQL和行计数三种方法。动态SQL允许根据不同的排序条件生成SQL语句,提高了代码的可维护性。然而,为了实现完全通用的分页存储过程,可能需要针对每个排序列编写独立的存储...

    2004~2007年系统分析师试题各知识点

    操作系统是计算机科学的核心领域之一,系统分析师需熟悉并发进程管理、磁盘调度算法、操作系统结构、进程调度、UNIX系统特性、分页存储管理、作业调度、目录结构、PV操作、文件系统、关系模式、E-R图、关系运算、...

    总页数算法.txt

    - **性能优化**:在大数据量的情况下,如何进一步优化分页算法,提高查询效率? - **用户体验**:如何设计更加友好的分页控件,提升用户的交互体验? - **安全性考虑**:在实现分页功能时,如何避免SQL注入等安全...

    Aqua_Data_Studio_19.0.2_x86_Downloadly.ir.rar

    7. **性能分析**:通过内置的SQL性能分析器,用户可以监控SQL语句的执行计划,找出性能瓶颈,从而优化数据库性能。 8. **多语言支持**:Aqua Data Studio支持多种语言,包括但不限于英语、中文、法语、德语等,满足...

    MySQL优化经验1

    5. **避免在SQL中进行运算和函数操作**:例如,不要在WHERE子句中对字段进行除法运算,这样会使索引失效。应尽可能让计算操作在应用程序中进行。 6. **使用预处理语句**:预处理语句可以提高性能,减少解析时间,...

    软考水平考试软件设计师考点精要

    - p34-p38:分析了Flynn分类法中的几种并行处理模型。 - p41-p48:深入讨论了总线系统的工作原理,包括总线仲裁机制、总线标准等,并提到了SSL协议在数据传输安全方面的应用。 #### 操作系统知识 - **进程管理**...

    SQLyog MySQL GUI 12.5 中文版 注册版

    它可以分析SQL查询的执行计划,找出潜在的性能瓶颈,并给出优化建议。同时,它还可以实时监控服务器的运行状态,包括CPU使用率、内存消耗、连接数等,帮助管理员及时发现并解决问题。 安全性是任何数据库工具的重要...

    数据库系统概论答案第四版

    2. **关系数据库理论**:重点讲述关系数据模型,包括关系的定义、关系操作(选择、投影、连接、除法等)以及SQL语言的基础知识。此外,还会涵盖实体-关系(E-R)模型和关系模式的规范化理论,如第一范式(1NF)、第...

Global site tag (gtag.js) - Google Analytics