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

实现千万级数据的分页显示 实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录,雄不? 立即下载

/*
 名称:spAll_DeleteNoneUnique
 输入:要查询的表名和字段列表
 输出:
 调用:
 说明:实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录,雄不?
 作者:铁拳
 邮件:
 网站:http://www.wellknow.net
 更新:20040610
 支持:http://bbs.wellknow.net
 版权:转述时请注明来源:用思维创造未来的Wellknow.net
*/

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

一千万条以上记录分页数据库优化经验总结 别人写的一篇文章,觉得不错,分享给大家。 立即下载

相关推荐

MySQL 百万级分页优化(Mysql千万级快速分页)

MySQL 百万级分页优化(Mysql千万级快速分页),主要解决大数量级的优化

Mysql千万级别数据如何做分页

一、先来看看对SQL优化的理解 SQL优化可分为两个部分,一个是设计阶段,另一个是查询阶段 设计阶段运用到的优化: 使用适当的数据库列类型和大小(需要保证表设计的字段长度足够使用,且最小。比如性别gender字段可以用tinyint(1)即可)。小点的话,可以节省硬盘空间和检索时间。 尽量从设计上采用单表查询解决业务问题。 在适当字段加入索引,能用唯一索引用唯一索引(性能比普通索引高)。 查询阶段涉及的优化: 尽可能不用select *:让优化器无法完成索引覆盖扫...

点滴记忆,分享成长之路 4943

实现千万级数据的SQL分页代码

实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录

postgreSQL单表数据量上千万分页查询缓慢的优化方案

postgreSQL单表数据量上千万分页查询缓慢的优化方案

MusicIsMyAll的博客 3万+

千万级数据分页查询存储过程SQLServer

千万级数据分页查询存储过程SQLServer 有实例

SqlServer千万级分页取数据.sql

CREATE PROCEDURE SP_Pagination /* *************************************************************** ** 千万数量级分页存储过程 ** *************************************************************** 参数说明: 1.Tables :表名称,视图 2.PrimaryKey :主关键字 3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc 4.CurrentPage :当前页码 5.PageSize :分页尺寸 6.Fields :显示的列 7.Filter :过滤语句,不带Where 8.Group :Group语句,不带Group By

mysql

这里写自定义目录标题 文章目录 MySQL面试中常见问题总结 这里写自定义目录标题 JDBC连接的过程 连接池 (1). 连接池的工作原理 (2). 连接池主要参数 数据库范式 (1). 第一范式(1NF) (2). 第二范式(2NF) (3). 第三范式(3NF) (4). 巴斯范式(BCNF) InnoDB和MyISAM区别 (1). 区别 (2). InnoDB存储引擎的4大特性 堆组织表,索引组织表和索引聚簇表 (1). 堆组织表 (2). 索引组织表 (3). 索引聚簇表 mysql优化 B+树

Ddoze的博客 322

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

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

俺从http://czcz1024.blogchina.com/转来滴转自csdn作者:铁拳/*  经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下:  exec GetRecordFromPage news,newsid,10,100000  news 为 表名, new

batistuta8848的专栏 548

使用mixamo导入人物动作到unity

导入的材质是withoutSkin时选择Create From Other Model + 选择带withSkin里的。方案二:Textures选择Extract Textures,将文件存放到喜欢的位置(不行继续方案三)2.动画没有动:开个Animation窗口,选择人物的Prefab(Hierachy),查看窗口左侧。方案三:选中素材自带或者导出的Material,接着方案一选择 选中的materials进行转化。选 withSkin,剩下的动作选without Skin)(角色发生位移时出现选项)

big_good_boy的博客 1635

招标信息爬取工具

一个能帮你节省大量时间的实用小工具,我自己用了挺久,分享出来给有需要的朋友

qq_56877290的博客 836
上一篇: 大家来讨论通过牺牲存储空间来达到数据库存取性能的办法?
下一篇: 通用存储过程.查找删除非唯一的记录
wellknow
博客等级 码龄26年 3粉丝 14原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值