用存储过程实现数据库的分页代码,加快页面执行速度。具体的大家可以测试下。代码如下:--******************************************************* --* 分页存储过程 * --* 撒哈拉大森林 * --* 2010-6-28 * --******************************************************* if exists(select * from sysobjects where type='P' and name=N'P_Paging') drop procedure P_Paging go create procedure P_Paging @SqlStr nvarchar(4000), -...
似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出“所有”符合条件的记录,然后取出m,n条记录。如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦。mysql该很悲壮的不停操作硬盘。 所以,可以试着让mysql也存储分页,当然要程序配合。(这里只是提出一个设想,...
sql2005分页存储过程示例代码如下:--分页存储过程示例 Alter PROCEDURE [dbo].[JH_PageDemo] @pageSize int = 9000000000, @pageIndex int = 1 , @orderBy Nvarchar(200) = '' -- 不加order By AS SET NOCOUNT ON --声明变量 DECLARE @select VARCHAR(3048); DECLARE @from VARCHAR(512); DECLARE @RowNumber VARCHAR(256); DECLARE @condition nVARCHAR(3990); DECLARE @groupBy varchar(50); DECLARE @sql VARCHAR(3998); DECLAR...
首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成。1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成。当我们使用SqlDataSource或使用以...
前用到的两个分页存储过程,需要的朋友可以参考下。第一个,取得数据总行数 代码如下:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [sq8reyoung].[fenye_num] ( @TableNames NVARCHAR(200), @Filter nvarchar(200)) AS IF @Filter = SET @Filter = WHERE 1=1 ELSE SET @Filter = WHERE + @Filter EXECUTE(select count(*) from +@TableNames+ +@Filter) 第二个取得分页数据 代码如下:set ANSI_NULLS ON s...
我用AspNetPager分页控件,写的存储过程代码如下:SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO ALTER PROCEDURE usp_PagingLarge @TableNames VARCHAR(200), --表名,可以是多个表,但不能用别名 @PrimaryKey VARCHAR(100), --主键,可以为空,但@Order为空时该值不能为空 @Fields VARCHAR(200), --要取出的字段,可以是多个表的字段,可以为空,为空表示select * @PageSize INT, --每页记录数 @CurrentPage INT, --当前页,...
给大家分享个效率最高的分页查询 5000万级别有效 比 ROWNUMBER 和Top效率高代码如下:/* 日期:2009-03-19 功能:根据各种条件获取 游戏国家任务 列表数据 */ Create procedure [dbo].[PrGs_Nation_Task_GetList] @PageSize int = 100, -- 每页显示记录条数,默认为100 @PageIndex int = 1, -- 当前提取要显示的页码,默认为1,数据库根据PageSize,PageIndex 计算返回一页数据 @RetTotal int output, -- 记录总数 @RetCount int out...
一个分页存储过程分享代码如下:/* *@curentpage 当前页 *@pagesize 每页记录数 *@TableName 表名 *@key 主键(自动排序) *@where 查询条件 1)空为 null 2)有查询条件不要带where *@order '0'表示 desc '1'是asc *@pageCount 总页数 */ create procedure Page @currentpage int,@pagesize int, @TableName varchar(30),@key varchar(30), @where varchar(50),@order varchar(1), @pageCount int ,@str varchar(450) output as b...
一条sql语句就实现了分页效果,但效率不是很高,建议学习,不建议使用,最好用存储过程1.所有记录的分页: SELECT TOP 页大小 * FROM Users WHERE (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC)) //skip(页大小*(页数-1)) 条记录 ORDER BY ID DESC 2.符合条件记录的分页(注意此时你的查询条件要分布在两个查询语句中,谨记) SELECT TOP 页大小 * FROM Users WHERE +你的查询条件 AND ( ID NOT IN ...
页存储过程(对有主键的表效率极高) 代码如下:------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ------------------------------------ ALTER PROCEDURE [UP_GetRecordByPage] @tblName varchar(255), -- 表名 @fldName varchar(255), -- 主键字段名 @PageSize int = 10, -- 页尺寸 @PageIndex int = 1, -- 页码 @IsReCount bit = 0, -- 返回记录总数, 非0 值则返回 @OrderType bit = 0,...
海量数据库的查询优化及分页算法方案海量数据库的查询优化及分页算法方案 原出处不详 摘自:www.21php.com 随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(...
数据库分页存储过程代码 代码如下:/* 数据库分页存储过程,支持倒序和升序 参数说明: @tablename:为搜索表名 @tablefield:为表的字段,约定为表的主键, @where:为搜索表名,要显示所有记录请设为"1=1" @orderby:为搜索结果排序,如order by id desc @fieldlist:为字段列表,如userid, username @curpage:当前页码 @page_record:每页记录条数 @Sort:排序标识(如果是倒序排,参数值为desc,为升...
通用分页存储过程,源码共享,大家共同完善好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句: select '' as CheckBox, A.TargetID, A.TargetPeriod, Convert(varchar(10), B.BeginDate, 120) as BeginDate, Co...
分页的存储过程代码如下:Create procedure sp_pageQuery @sqlstr nvarchar(4000), @page_index int, @page_size int , @rec_count int out -- as set nocount on declare @cursor_id int declare @rowcount int exec sp_cursoropen @cursor_id output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output set @rec_count=@rowcount set @page_index=(@page_index-1)*@page_size+1 IF @rec_count>0 BEGIN e...
一个比较实用的大数据量分页存储过程create proc sp_PublicTurnPageWebSite( @TBName nvarchar(100)='', --表名,如 pinyin @PageSize int=10, --每页的记录数,默认为 10 @CurPage int=1, --表示当前页 1 @KeyField nvarchar(100)='ID', --关键字段名,默认为 ID,该字段要求是表中的索引 或 无重复和不为空的字段 @KeyAscDesc nvarchar(4)='ASC', --关键字的升、降序,默认为升序 ASC , 降序为 DESC @Fields nvarchar(500)='*', --所...