实现上千万条数据的分页显示!

转载 2004年07月09日 11:32:00

-- 获取指定页的数据
CREATE PROCEDURE GetRecordFromPage
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @PageSize     int = 10,           -- 页尺寸
    @PageIndex    int = 1,            -- 页码
    @IsCount      bit = 0,            -- 返回记录总数, 非 0 值则返回
    @OrderType    bit = 0,            -- 设置排序类型, 非 0 值则降序
    @strWhere     varchar(1000) = ''  -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL   varchar(6000)       -- 主语句
declare @strTmp   varchar(100)        -- 临时变量
declare @strOrder varchar(400)        -- 排序类型

if @OrderType != 0
begin
    set @strTmp = "<(select min"
    set @strOrder = " order by [" + @fldName +"] desc"
end
else
begin

    set @strTmp = ">(select max"
    set @strOrder = " order by [" + @fldName +"] asc"
end

set @strSQL = "select top " + str(@PageSize) + " * from ["
    + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
    + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
    + @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"
    + @strOrder

if @strWhere != ''
    set @strSQL = "select top " + str(@PageSize) + " * from ["
        + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
        + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
        + @fldName + "] from [" + @tblName + "] where " + @strWhere + " "
        + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder

if @PageIndex = 1
begin
    set @strTmp = ""
    if @strWhere != ''
        set @strTmp = " where " + @strWhere

    set @strSQL = "select top " + str(@PageSize) + " * from ["
        + @tblName + "]" + @strTmp + " " + @strOrder
end

if @IsCount != 0
    set @strSQL = "select count(*) as Total from [" + @tblName + "]"

exec (@strSQL)

GO

实现上千万条数据的分页显示!

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 08:33
  • 156

实现上千万条数据的分页显示

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 19:35
  • 160

几千万条数据,怎么让查询效率高起来?

大数据量的优化,自己总结了下,在自己的认知范围内,整理了两个大方面 一、sql语句方面的优化 1、使用索引查询         1、造成全表查询的(索引失效的情况):避免null值查询。索引列的...
  • u012540337
  • u012540337
  • 2015年06月16日 17:10
  • 6076

Android ListView实现分页显示数据

当有大量的数据需要加载到ListView的Adapter中时,全部一次性加载,通常会非常耗时,这将严重影响用户的体验性和流畅性,而分页加载则会优化加载的速度,先暂时显示一页能够显示的数据项,在拖动到最...
  • carterjin
  • carterjin
  • 2012年04月26日 09:48
  • 4741

JSP实现数据库分页显示源代码

分页显示数据库信息 分页显示数据库记录     用户名     性别     电话     E-Mail try { //驱动程序名 String dri...
  • Java958199586
  • Java958199586
  • 2011年11月06日 17:58
  • 6732

从一千万条短信中找出重复次数最多的前10条

题目:      有1千万条短信,有重复,以文本文件的形式保存,一行一条。请用5分钟时间,找出重复出现最多的前10条。 struct TNode { BYTE* pText; //直...
  • wangfengfan1
  • wangfengfan1
  • 2015年08月04日 20:53
  • 1764

目前最快的分页..十万数据也在10~20Ms

在我们做网站开发,都采用 Asp,PHP,Jsp 等等的语言编写,而Asp更是大家的至爱,因为它开发简便,运用灵活。在编写Asp的同时,也有不少朋友为了分页的效率头痛。如果是小型的应用,比如数据表中的...
  • chenitx
  • chenitx
  • 2005年04月24日 18:44
  • 1435

Oracle使用sql语句分页显示数据,C#版

Oracle使用sql语句分页显示数据,C#版,两条C#语句,在ORacle数据库中实现分页可以使用rownum,这给分页的使用带来了极大的方便: string osql = "select use...
  • pyq228
  • pyq228
  • 2011年10月26日 14:56
  • 965

Servlet——实现数据分页显示

本文讲述了Servlet中连接数据库以及实现数据分页显示的方法。
  • ggGavin
  • ggGavin
  • 2016年05月06日 22:39
  • 7065

SSH框架中 分页显示数据Demo

分页的几个要素:总记录数,每页显示数,共几页,当前页等。 在上个例子的基础上我们开始完善我们的程序。 1.首先我们先新建立一个接口MemberDao.java,把所需要用到的方法列...
  • syaguang2006
  • syaguang2006
  • 2015年08月11日 15:20
  • 1044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现上千万条数据的分页显示!
举报原因:
原因补充:

(最多只允许输入30个字)