mssql高效的分页存储过程分享
存储 mssql 高效 分享 过程 分页
2023-06-13 09:14:47 时间
最近在做一个几百万条数据的分页查询,研究了各种方案,在本机上用项目的实际数据库做测试,测试过程isvery痛苦,不堪回首ing。现在废话不多说,直接上结果,相信这也是大多数搜索答案的人最愿意看的方式。
以下是存储过程的代码:
CREATEPROCEDURE[dbo].[P_GridViewPager](
@recordTotalINTOUTPUT, --输出记录总数
@viewNameVARCHAR(800), --表名
@fieldNameVARCHAR(800)="*", --查询字段
@keyNameVARCHAR(200)="Id", --索引字段
@pageSizeINT=20, --每页记录数
@pageNoINT=1, --当前页
@orderStringVARCHAR(200), --排序条件
@whereStringVARCHAR(800)="1=1" --WHERE条件
)
AS
BEGIN
DECLARE@beginRowINT
DECLARE@endRowINT
DECLARE@tempLimitVARCHAR(200)
DECLARE@tempCountNVARCHAR(1000)
DECLARE@tempMainVARCHAR(1000)
--declare@timediffdatetime
setnocounton
--select@timediff=getdate()--记录时间
SET@beginRow=(@pageNo-1)*@pageSize +1
SET@endRow=@pageNo*@pageSize
SET@tempLimit="rowsBETWEEN"+CAST(@beginRowASVARCHAR)+"AND"+CAST(@endRowASVARCHAR)
--输出参数为总记录数
SET@tempCount="SELECT@recordTotal=COUNT(*)FROM(SELECT"+@keyName+"FROM"+@viewName+"WHERE"+@whereString+")ASmy_temp"
EXECUTEsp_executesql@tempCount,N"@recordTotalINTOUTPUT",@recordTotalOUTPUT
--主查询返回结果集
SET@tempMain="SELECT*FROM(SELECTROW_NUMBER()OVER(orderby"+@orderString+")ASrows,"+@fieldName+"FROM"+@viewName+"WHERE"+@whereString+")ASmain_tempWHERE"+@tempLimit
--PRINT@tempMain
EXECUTE(@tempMain)
--selectdatediff(ms,@timediff,getdate())as耗时
setnocountoff
END
GO
相关文章
- Mysql数据导入MSSQL:一步搞定(mysql导入mssql)
- MSSQL在线管理探索:更高效、更便捷(mssql在线管理)
- MySQL 存储图片:使用 BLOB 类型字段(mysql存储图片字段)
- 安全保障:MSSQL存储过程中的加密技术(mssql存储过程加密)
- 快速删除 MSSQL 存储过程:三步走(mssql删除存储过程)
- 记录MSSQL查找记录:从无到有(mssql查找)
- MSSQL建表:快速创建数据库,高效管理数据(mssql建立表)
- MSSQL与CMD结合,助您快速实现高效数据操作(mssql执行cmd)
- 节省时间MSSQL存储过程:用于节省时间的有效创建(mssql存储过程创建)
- 存储过程使用易语言实现MSSQL存储过程的调用(易语言mssql执行)
- 手机端MSSQL数据库:安全高效的数据管理之选(手机mssql数据库软件)
- 学习如何使用MSSQL数据库:最佳实践(如何使用mssql数据库)
- 取消MSSQL数据库服务自启动(取消mssql开机启动)
- 单文件MSSQL数据库快速上手指南(单文件mssql 管理)
- 查询优化提高MSSQL性能之路(优化查询 mssql)
- 从MSSQL提取数据:快速、高效的数据传输方式(从mssql读数据)
- MSSQL集群RAC技术:实现轻松高效的数据库部署(mssql集群rac)
- 库使用MSSQL镜像数据库构建高效可靠系统(mssql镜像数据)
- MSSQL故障多多:一种普遍现象(mssql通病)
- 使用MSSQL转DMP工具轻松备份数据库(mssql转dmp工具)
- 「MSSQL调试存储过程:从入门到精通」(mssql调试存储过程)
- MSSQL读数据库的正确方法(mssql读法)
- 表MSSQL数据库中触发器清单(mssql 触发器列)
- MSSQL表设计科学升级,提高效率(mssql表高效设计)
- MSSQL自动更新:无需手动操作,快速完成数据库更新(mssql 自动更新)
- 恭喜!使用MSSQL第三方工具走上开发之路(mssql第三方工具)
- 图表MSSQL 快速入门:创建第一条图表(mssql 第一条)
- MSSQL空间自动扩展:高效应对日益增长的数据存储需求(mssql空间自动扩展)
- 使用MSSQL实现高效、精准的用户管理(mssql 用户管理)
- 建设MSSQL环境:研究高效实用工具(mssql环境工具)