首页 新闻 赞助 找找看

这两种分页查询,那种效率更高些?在线等~~

0
悬赏园豆:5 [已关闭问题] 关闭于 2016-10-16 10:26
CREATE procedure [dbo].[SP_pagination]
(
@sqlstr nvarchar(4000),   --查询字符串
@pageindex int,--第N页
@pagesize int--每页行数
)
as
set nocount on      
declare  
@P1 int,   --P1是游标的id      
@rowcount int
if(@pageindex<1)
begin
    set @pageindex=1
end
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output      
select @rowcount as [Count],ceiling(1.0*@rowcount/@pagesize) as [PageCount],@pageindex as PageIndex      
set @pageindex=(@pageindex-1)*@pagesize+1      
exec sp_cursorfetch @P1,16,@pageindex,@pagesize          
exec sp_cursorclose @P1

GO





SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 1234 毫秒,占用时间 = 1290 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 1234 毫秒,占用时间 = 1290 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 354 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 354 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 1234 毫秒,占用时间 = 1646 毫秒。

(1 行受影响)

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 

 

复制代码
CREATE proc [dbo].[SplitPage]
(
    @sqlstr nvarchar(100),
    @tables nvarchar(50),
    @pageindex int,--第N页
    @pagesize int--每页行数
)
as
set nocount on      
declare  @indexStart varchar(20),@rowcount int,@qqqq nvarchar(50)
if(@pageindex<1)
begin
    set @pageindex=1
end
set @qqqq='select @count=count(ID) from '+@tables
exec sp_executesql @qqqq,N'@count int out',@rowcount out
set @indexStart = cast((@pageindex-1)*@pagesize as varchar(20)) 
select @rowcount as [Count],ceiling(1.0*@rowcount/@pagesize) as [PageCount],@pageindex as PageIndex 
exec( @sqlstr + ' offset  ' + @indexStart + ' row fetch next ' + @pageSize +' rows only') --//检索该页数据   

GO


 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 93 毫秒,占用时间 = 16 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 93 毫秒,占用时间 = 16 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 484 毫秒,占用时间 = 1612 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 484 毫秒,占用时间 = 1612 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 577 毫秒,占用时间 = 1628 毫秒。

(1 行受影响)

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
复制代码
imluzhi的主页 imluzhi | 初学一级 | 园豆:37
提问于:2016-10-15 19:59
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册