实现千万级数据的分页显示
作者:紫色形人
/*
经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下:
exec GetRecordFromPage news,newsid,10,100000
news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。
*/
/*
函数名称: GetRecordFromPage
函数功能: 获取指定页的数据
参数说明: @tblName 包含数据的表名
@fldName 关键字段名
@PageSize 每页记录数
@PageIndex 要获取的页码
@OrderType 排序类型, 0 - 升序, 1 - 降序
@strWhere 查询条件 (注意: 不要加 where)
作 者:紫色形人
邮 箱: kissyougoodby@163.com
创建时间: 2007-9-27
修改时间: 2007-9-27*/
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(2000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(1000) -- 临时变量
declare @strOrder varchar(500) -- 排序类型
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
exec (@strSQL)
GO
分享到:
相关推荐
千万级数据分页查询存储过程SQLServer 有实例
mssql实现千万级数据的分页显示,超级好用
数据库优化操作实现数据分页,数据量在千万级分页效果依然很流畅,该文件已经在实际项目中应用,并且效果很不错的!
实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录
千万级分页存储过程 SQL SERVER
*//* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @PageSize 每页记录数 @PageIndex 要获取的页码 @OrderType 排序类型, 0 - ...
java 数据分页显示 java 数据分页显示 java 数据分页显示
主要为大家详细介绍了基于PHP实现数据分页显示功能,分页在后台管理中是经常使用的功能,分页显示方便大量数据的管理,感兴趣的小伙伴们可以参考一下
经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒; 再生产环境中非常实用,帮助你解决线上数据库卡顿问题。
这是一个千万级数据的查询分页存储过程。这是一个千万级数据的查询分页存储过程。
MySQL 百万级分页优化(Mysql千万级快速分页),主要解决大数量级的优化
一个POI导出Excel万级数据分页实现 解决内存溢出问题 完整的 project demo 有数据库dmp文件
使用jquery实现数据分页显示,有内存分页也有数据库分页。
文件以一个实例的形式完成了jsp链接到sql数据库读取出内容并实现数据分页显示,有详细注释。
只要通过JDBC连接上数据库 获得Connection 对象 套上此模板就可实现数据库数据分页机制……
html前端获取后端js的数据,实现到html表格,并且实现表格分页显示,分页显示原理是要显示那一页数据就从后端获取需要显示页的数据,不会一次性获取全部数据,减小流前端的压力。后端使用js+express,读取csv文件...
oralce千万级数据存储过程分页技术,网上很稀有的哦~~
千万数量级分页存储过程,可支持多表查询,任意排序
struts2.0实现的数据分页实现及实现分页步骤,