文章类 软件类
好好999
 | 网站首页 | 网络编程语言 | 星座情感文章 | 特殊软件下载 | 站长工具天下 | 
html入门培训 网站服务器软件  化妆品经典广告词  雅芳化妆品价格  avon化妆品 net 入门培训 房地产销售广告 化妆品广告词 网络工程师
您现在的位置: 学习网 > 网络编程语言 > Oracle > 正文
 | 网络编程语言首页 | Dreamweaver | Html | Asp | Jsp | Php | Asp.net | Css | Javascript | Access | Mysql | Mssql | Oracle | Domain | Mainframe |
最 新 热 门
普通文章[SQL Server]探讨SQL2000对XML
普通文章如何从 MySQL 数据库表中检索数
推荐文章Oracle外部程序的触发小结
普通文章[Oracle]减少临时表使用空间的
普通文章如何自动发布MS SQL SERVER数据
普通文章[Sql server]如何得到用户的继
普通文章一些有用的sql语句实例
普通文章轻松三步走!防止SQL数据库注入
普通文章Oracle DBA数据库结构试题精选
普通文章Oracle进程导致CPU 100%解决步
 
频 道 推 荐
普通文章最危险的四大漏洞之一——数据
普通文章SQL server 数据库定时自动备份
普通文章Sql server 2005加强的十大安全
普通文章用标准的SQL语句实现查询记录分
普通文章谈几个Sql server的日志
普通文章Sql Server去除表中的不可见字
普通文章Sql server传给语句的输入数据
普通文章Sql server数据备份的三个恢复
普通文章SQL server 2005的简单分页程序
普通文章五种提高 SQL Server 性能的方
普通文章Oracle 10g第2版新特性之SQL和
普通文章Oracle 10g第2版新特性之性能特
普通文章Oracle数据库10g的安全性和身份
普通文章SQL Server安装文件挂起错误解
普通文章SQL Server中如何用通配符搜索
普通文章MySQL 配置(Ubuntu篇 供新用户
普通文章在sqlserver2005中安装sql ser
普通文章基于Access数据库的抽奖系统设
普通文章如何为运行在SAP的SQL Server计
普通文章MySQL配置(Ubuntu篇 供新用户参
 
频 道 推 广
 
SQL分页算法,还可以更好           ★★★
SQL分页算法,还可以更好
作者:佚名 文章来源:本站整理 更新时间:2008-5-14 19:48:41

  分页算法,是Web开发人员很关心的一个问题,几乎每个数据库相关的应用都要涉及到分页算法,有很多人写过这方面的文档,似乎没有什么好讨论的了;但实际上换一种数据的表现形式,就可以采用一种更好的分页算法,那我们现在就看看还能不能做得更好。

  先说说已有的一些方法。

  一是通过 DataGrid 分页,这种方式最简单,但效率不高,需要读取所需数据前面的所有数据。

  二是通过指定起始记录和记录数的 DbDataAdapter.Fill 来填充 DataSet 的分页方式,这种方式也简单,但同样效率不高,也需要读取所需数据前面的所有数据。

  三是通过多个 select top 和多次排序,从表的中间选取需要的记录;为了使相邻页的数据不重复,需要使用 not in,会导致在选择大数据量的表格的尾部数据时,数据库的性能会有很大的降低。

  假设我们换一种表格的展现形式,就以传统的 C/S 应用下的带滚动条的 Grid 展现方式为例;其实这种方式才是数据库表格最合适的展现方式,而 Web 应用下常用的 1,2,3....的页码连接方式或 、 按钮的页码浏览条方式,都是不得已而为之,因为不能通过简单的技术,在 Web 应用下实现带滚动条的 Grid。

  数据库的表格都是带有主键的,以区分表格中不同的记录;用户界面上的 Grid 里的数据从逻辑上也是有主键的,否则数据会有歧义,但大多数的应用,没有设置,也无法知道所读出数据的主键;即使少数应用设置了,也知道所读数据的主键,但并没有将其应用到分页中;其实只要知道了所读数据的主键,就可以非常容易的进行分页。

  首页的算法很简单

   select top 页大小 * from 表名 order by 主键

  对于带滚动条的表格,数据是一页一页顺序滚动,即使拖动滚动条,也可以一页页滚动到所选的位置,当拖动到一个新页时的算法为

  select top 页大小 * from 表名 where 主键 >  末记录的主键 order by 主键

  如果采用了缓存的方式,所有的数据都只需要下载一次,只有滚动到尾部时,才下载新的数据。

  这种算法要求知道 Grid 中数据的主键,并将主键的数据应用到分页;对于多主键和排序的表格,算法是一样的,只是语句复杂了一些。不但可以从首页开始,也可以从末页开始,向前翻滚。

  这个算法的性能没有问题,对于不论多大的表,选择那个位置的记录都是一样的,比较适合于用首页、 、 和末页的分页选择方式,更适合于带滚动条的 Grid ;不适合于指定页码的分页。

  采用该算法的带滚动条的 Grid 可以参考我们的演示 www.BizStruct.cn

  请您在提出疑问时,先考虑两点,否则可能认识不到这个算法和我们系统结合的优势:

  第一:传统的 C/S 应用的表格和Web上的分页表格,谁更便利。

  第一,我们实现的带滚动条的表格,和传统的 C/S 应用的表格的差别有多大。

  对回复的解释:

[1] [2] 下一页

 
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 相 关 文 章
    Dreamweaver MX 2004 CSS扩展属性
    用DW2004打造PHP+MYSQL数据库环境
    在SQL Server中保存和输出图片
    ASP 编程中20个非常有用的例子(二)
    如何防范SQl注入
    SQL Server与Access、Excel的数据转换
    如何避免asp的SQL的执行效率低
    ASP Upload 使用说明
    ASP连接SQL2000的方法
    分页的显示-->前后翻滚10页的实现
    解决在ASP中执行数据库查询中的特殊字符的问题
    如何在数据库表中建立复合主键(即多个字段同时作为主键)
    编程方向
    用ADO管理SQL Server数据库及其设备
    数据挖掘概述
    手工创建数据库的全部脚本及说明
    数据库综合开发实践
    Microsoft 数据仓库架构 !
    使用 HTTP 访问 SQL Server
    sql
    | 设为首页 | 加入收藏 | 投搞邮箱 | 友情链接 | 网站公告 | 版权申明 | |
    破天一剑私服 - 冒险岛外挂 - 传奇外挂 - dnf外挂 - 地下城与勇士外挂 - dnf外挂 - 传奇外传外挂 - qq三国外挂 - 天龙八部外挂 - 劲舞团私服 - 劲舞团私服 - 传奇私服 - 传奇私服 - 传奇私服 - 变态传奇私服 - 及时雨外挂 - 热血传奇私服 - 传世私服 - 魔兽世界私服 - 魔兽世界私服 - 完美世界私服

    点击这里给我发消息

    有事点这里

    copyright: 2007-2008 haohao888.com.cn 粤ICP备08105098号