`
leonardleonard
  • 浏览: 778863 次
社区版块
存档分类
最新评论

游标对于分页存储过程

SQL 
阅读更多

1。我个人认为最好的分页方法是:


Select top 10 * from table where id>200
写成存储过程,上面的语句要拼一下sql语句,要获得最后大于的哪一个ID号


2。那个用游标的方式,只适合于小数据量的表,如果表在一万行以上,就差劲了

你的存储过程还比不上NOT IN分页,示例:


SELECT Top 10 * FROM Customers WHERE Customerid NOT IN (SELECT TOP 20 Customerid from Customers )
declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@每页大小 as varchar)+' * FROM 表 WHERE 主键列 NOT IN (SELECT TOP '+cast(@每页大小*@第几页 as varchar)+' 主键列 from 表 )'
exec(@SQLStr)



3。游标是存放在内存中,很费内存.

游标一建立,就将相关的记录锁住,直到取消游标

游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机.

所以说,我个人的经验,就是一万上行上的表,不用游标.小数据量的表,适当的时候可以用游标

因为游标,遍历小数据量的行集还是不错的一个方法!

 

4。用临时表自定义分页和使用游标自定义分页都不好!
 

分享到:
评论

相关推荐

    TSQL 存储过程 游标 数据库 sql优化 存储过程分页

    TSQL 存储过程 游标 数据库 sql优化 存储过程分页 TSQL 存储过程 游标 数据库 sql优化 存储过程分页 TSQL 存储过程 游标 数据库 sql优化 存储过程分页 TSQL 存储过程 游标 数据库 sql优化 存储过程分页 TSQL 存储...

    利用SQL游标存储过程分页方案

    利用SQL游标存储过程分页方案,以前用过,应该还行

    sql2000可用分页存储过程

    使用游标实现的sql2000可用分页存储过程,不要增加排序字段

    SqlServer高效万能分页存储过程

    使用系统游标分页,数据越大越能显示高效

    分页存储过程

    利用游标实现万能分页存储过程,丢弃没有ID的烦恼。说明/注释都写在sql脚本里面,代开脚本,执行即可为当前数据库创建该存储过程!

    分页存储过程的实现及调用

    分页存储过程的实现及调用 create or replace package JT_P_page is -- Author : -- Created : -- Purpose : 分页功能 -- Public type declarations type type_cur is ref cursor; --定义游标变量用于返回...

    百万级的分页存储过程

    百万级的分页存储过程 CREATE PROCEDURE sp_paging @sqlstr NVARCHAR(4000), --查询字符串 @currentpage INT, --第N页>=1 @pagesize INT --每页行数 AS SET NOCOUNT ON declare @P1 INT, --P1是游标的id

    oracle分页

    oracle分页、分页的存储过程、循环、游标的使用、排序

    oracle包用存储过程图分页

    oracle建包,包内有存储过程实现分页,里边包含游标,通过游标实现。

    SQL Server的通用分页存储过程 未使用游标,速度更快!

    正常情况下,SQL Server服务器上会对使用频率大的Table建立合适的索引 这样能大幅度的提高数据库本身的数据检索速度,建立索引的方法就不细说了 如果需要... 我在写这个分页存储之前,参考了网上的大量相关文章,可以

    分页存储过程(一)使用sql2005的新函数构造分页存储过程

    其实在很多时候设计的度还是要把握的,不至于让自己陷入【非要把它设计成万能的分页存储过程】的怪圈中才是最重要的,因为我们还要留出时间还解决其他的很多问题,个人认为适度就可以了,留出一定的空间。...

    SQL Server 的通用分页显示存储过程

    建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。

    高效率通用分页技巧存储过程

    经过测试,确实是效率最高的分页 1.使用游标分页。 2.使用top分页。 3.使用ROW_NMUBER()分页

    存储过程的分页方案比拼

    (转网络的)通过SQL 查询分析器,显示比较:我的结论是: 分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句 ...分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用

    Oracle,SQl,MySql实现分页查询

    通过SQL 查询分析器,显示比较:我的结论是: ...分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用 SELECT u.username FROM `user` u join contact_info c on (u.id=c.user_id) and c.address='123';

    oracle存储过程实现分页

    通过在oracle数据库端编程实现分页在页面段的显示。首先创建要用的游标包,在创建实现分页的过程

    分页存储过程(二)在sqlserver中返回更加准确的分页结果

    在我的使用SQL Server2005的新函数构造分页存储过程中,我提到了使用ROW_NUMBER()函数来代替top实现分页存储过程。 但是时间长了,又发现了新问题,就是主子表的分页查询。例如:订单表和订单明细表,要求是查询订单...

    关于使用存储过程创建分页

    经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将...

    Oracle数据库分页的存储过程

    近在复习oracle数据库,只能... //oracle分页存储过程 create or replace proceduce fenye(tableName in varchar2,pageSize in number,pageNow in number,myRowCount out number,myPageCount out number, p_cur

Global site tag (gtag.js) - Google Analytics