能处理百万数据的存储过程

转载 2006年05月20日 11:19:00

//过程名和输入输出参数

CREATE PROCEDURE GetCustomDataPage @pageSize int, @pageIndex int, @pageCount int output, @recordCount int output AS

//定义变量

declare @SQL varchar(1000)

//取得记录数量

select @recordCount=count(*) from products

//计算得到页数

set @pageCount=ceiling(@recordCount*1.0/@pageSize)

//经典算法,我还没有看明白

if @pageIndex = 0 or @pageCount<=1

 set @SQL='select top '+str(@pageSize)+' productID,productName, unitPrice from products order by productID asc'

else if @pageIndex = @pageCount -1

 set @SQL='select * from ( select top '+str(@recordCount - @pageSize * @pageIndex)+' productID,productName, unitPrice from products order by productID desc) TempTable order by productID asc'

else set @SQL='select top '+str(@pageSize) +' * from ( select top '+str(@recordCount - @pageSize * @pageIndex)+' productID,productName, unitPrice from products order by productID desc) TempTable order by productID asc' exec(@SQL)


GO

相关文章推荐

AspNetPager+ROW_NUMBER()的分页存储过程 【百万数据】

ROW_NUMBER()分页存储过程-SQL2005才支持set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ==============...

mysql 百万数据存储过程 查询优化技巧

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎...

实测 C#+存储过程 百万级数据分页

为了寻找一个高效的存储过程,对C#+mssql如下存储过程分页进行了测试,测试条件: 环境:VS2008+MSSQ2000 数据量:200万 对如下两个存储过程进行测试: 第一个: CREA...
  • love560
  • love560
  • 2012年09月11日 00:20
  • 1444

C# 用存储过程处理批量数据

  • 2015年07月15日 14:28
  • 16KB
  • 下载

jdbc_分页查询,大数据,批处理,存储过程

分页查询 实际上就是每次查询一部分记录,并显示: select * from table_name limit StartIndex, PageSize;——>StartIndex:从第几个记...

sql存储过程中处理json数据

用到的函数: CREATE FUNCTION [huo].[parseJSON]( @JSON NVARCHAR(MAX))      RETURNS @hierarchy TABLE        ...

SQLServer创建表,插入数据,查询,创建触发器,存储过程

建数据库 create database school --建表 use school create table students (  s_id int identity(1,1) pr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:能处理百万数据的存储过程
举报原因:
原因补充:

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