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

 更新时间:2007年02月09日 00:00:00   作者:  

临时表

首先,我准备先来说一下临时表方法,这是一个广泛被建议使用的解决方案,我在项目中遇到过好几次了,这里有另一篇解释它如何工作的文章,还有一个如何在DataGrid中是用定制化分页(Custom Paging)的例子:

ASP.NET DataGrid分页 第二部分 – 定制化分页

这两篇文章中的方法都是通过把主键数据拷贝到临时表中,然后对主查询做join实现查询优化。下面让我们来看看这个方法的实质:

复制代码 代码如下:

CREATE TABLE #Temp ( 
    ID int IDENTITY PRIMARY KEY, 
    PK  /* here goes PK type */ 


INSERT INTO #Temp SELECT PK FROM Table ORDER BY SortColumn 

SELECT   FROM Table JOIN #Temp temp ON Table.PK = temp.PK ORDER BY temp.ID  
WHERE ID > @StartRow AND ID < @EndRow 

通过把所有的行拷贝到临时表中,我们可以对查询进一步的优化(SELECT TOP EndRow …),但是关键在于最坏情况——一个包含100万记录的表就会产生一个100万条记录的临时表。考虑到这样的情况,再看看上面文章的结果,我决定在我的测试中放弃该方法

相关文章

  • 一次数据库查询超时优化问题的实战记录

    一次数据库查询超时优化问题的实战记录

    当MySQL服务器出现异常(慢),首先要考虑是否因SQL语句引起数据库慢,下面这篇文章主要给大家介绍了一次数据库查询超时优化问题的实战记录,需要的朋友可以参考下
    2021-10-10
  • 记一次SQL优化的实战记录

    记一次SQL优化的实战记录

    作为开发人员,我们免不了与sql打交道,有些sql可能在业务的最开始,执行是毫无问题的,但是随着业务量的提升以及业务复杂度的加 深,可能之前的sql就会需要优化了,下面这篇文章主要给大家介绍了关于一次SQL优化的实战记录,需要的朋友可以参考下
    2022-07-07
  • 数据库分页查询方法

    数据库分页查询方法

    在这里主要讲解一下MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法。
    2009-07-07
  • 分布式数据存储系统的三要素

    分布式数据存储系统的三要素

    大家好,本篇文章主要讲的是分布式数据存储系统的三要素,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • mycat在windows环境下的安装和启动

    mycat在windows环境下的安装和启动

    这篇文章主要介绍了mycat在windows环境下的安装和启动过程,需要的朋友参考下吧
    2018-03-03
  • 关于数据库设计中主键问题的思考

    关于数据库设计中主键问题的思考

    数据库主键在数据库中占有重要地位。主键的选取策略决定了系统是否可靠、易用、高效。本文探讨了数据库设计过程当中常见的主键选取策略,并剖析了其做主键的优缺点,提出了相应的解决问题的方法
    2013-08-08
  • SQL 优化经验总结34条

    SQL 优化经验总结34条

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!
    2009-07-07
  • 简单分析SQLite4的一些设计改变

    简单分析SQLite4的一些设计改变

    这篇文章主要介绍了SQLite4的一些设计改变,SQLite作为内嵌式数据库使用起来非常轻便,需要的朋友可以参考下
    2015-07-07
  • 解决Navicat数据库连接成功但密码忘记的问题

    解决Navicat数据库连接成功但密码忘记的问题

    这篇文章给大家介绍了Navicat数据库连接成功,密码忘记如何解决,文中给大家介绍了两种解决方法,有详细的图文讲解,需要的朋友可以参考下
    2023-08-08
  • 详解SQL中Group By的使用教程

    详解SQL中Group By的使用教程

    这篇文章主要介绍了SQL中Group By的使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论