SQL Server 2005数据库的2种分页sql语句的比较

数据库 SQL Server
我们今天主要向大家描述的是SQL Server 2005数据库的2种分页sql语句的比较,以下就是文章的主要内容的详细解析。

此文章主要向大家讲述的是SQL Server 2005数据库的2种分页sql语句的比较,我们是在以下的平台和环境中对其进行比较的,即 CPU:Intel(R) Pentium(R) Dual T2390 1.86GHz 内存:1G(系统正常启动后约占300M空间) 。

 

硬盘:SATA 160G 8M Cache

 

系统:windowsxp+Sql Server 2005 sp2

 

测试数据:共100万条

 

分页测试代码:

1)row_number的两种分页方式:分别用top和between过滤

 

2)包含子查询结果的三种分页方式

 

共5种方式。

 

SQL Server 2005数据库的几种分页sql语句的比较方式1:

每页显示200条

 

分页至10万条之后的第两百条记录

 

 

  1. Java代码   
  2. PROCEDURE [dbo].[proc_select_moauser1]   
  3. AS   
  4. BEGIN   
  5. SET NOCOUNT ON;   
  6. declare @tdiff datetime   
  7. set @tdiff=getdate()   
  8. select top 200 * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber>100000   
  9. select datediff(ms,@tdiff,getdate()) as '耗时(毫秒)'   
  10. END   
  11. PROCEDURE [dbo].[proc_select_moauser1]  
  12. AS  
  13. BEGIN  
  14. SET NOCOUNT ON;  
  15. declare @tdiff datetime  
  16. set @tdiff=getdate()  
  17. select top 200 * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber>100000  
  18. select datediff(ms,@tdiff,getdate()) as '耗时(毫秒)'  
  19. END  
  20. 响应时间:156ms-210ms   

SQL Server 2005数据库的几种分页sql语句的比较方式2:

每页显示200条

 

分页至10万条之后的第两百条记录

 

 

  1. Java代码   
  2. PROCEDURE [dbo].[proc_select_moauser2]   
  3. AS   
  4. BEGIN   
  5. -- SET NOCOUNT ON added to prevent extra result sets from   
  6. -- interfering with SELECT statements.   
  7. SET NOCOUNT ON;   
  8. -- Insert statements for procedure here   
  9. declare @tdiff datetime   
  10. set @tdiff=getdate()   
  11. select * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber between 100000 and 100200   
  12. select datediff(ms,@tdiff,getdate()) as '耗时(毫秒)'   
  13. END   
  14. PROCEDURE [dbo].[proc_select_moauser2]  
  15. AS  
  16. BEGIN  
  17. -- SET NOCOUNT ON added to prevent extra result sets from  
  18. -- interfering with SELECT statements.  
  19. SET NOCOUNT ON;  
  20. -- Insert statements for procedure here  
  21. declare @tdiff datetime  
  22. set @tdiff=getdate()  
  23. select * from(select row_number() over(order by uid asc) as rownumber,* from moa_user ) as tb where rownumber between 100000 and 100200  
  24. select datediff(ms,@tdiff,getdate()) as '耗时(毫秒)'  
  25. END  

 

响应时间:153ms-176ms,以上的相关内容就是对SQL Server 2005数据库的几种分页sql语句的比较的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server Compact中的DLL文件与工具
  2. SQL Server合并复制性能的提高有哪些方案?
  3. SQL Serverlink Oracle的几种不同方式
  4. Eclipse连接SQL Server 2000的步骤与易出现的问题
  5. 遇到SQL Server 2000Bug不可怕!

 

责任编辑:佚名 来源: 51CTO.com
相关推荐

2011-08-22 09:55:30

SQL Server 排序

2010-07-08 15:26:05

SQL Server

2010-07-22 14:46:41

SQL Server

2010-07-12 12:41:16

SQL Server

2010-07-02 10:47:20

SQL Server

2011-08-15 15:40:57

SQL Server 系统数据库

2010-09-06 11:46:03

SQL Server语句

2010-07-13 10:43:26

SQL Server数

2010-09-06 09:53:41

SQL Server语句

2010-09-25 15:37:38

SQL语句

2010-06-28 10:36:42

SQL Server数

2011-09-07 15:11:31

SQL Server同步

2011-07-15 11:02:47

SQL Server 用户权限设置

2010-07-05 12:33:13

SQL Server

2010-06-30 13:19:17

SQL Server

2009-04-30 09:56:29

微软SQL Server 缓存依赖

2010-07-20 10:02:41

SQL Server

2010-07-16 14:17:18

SQL Server

2011-03-28 15:28:03

SQL Server 数据库

2011-08-11 09:12:31

SQL Server nolock
点赞
收藏

51CTO技术栈公众号