软件测试开发技术SQL Server数据库三种分页方案详尽分析

发表于:2009-10-12来源:作者:点击数: 标签:软件测试数据库SQLSqlsql
软件测试 开发 技术 SQL Server 数据库 三种分页方案详尽分析 SQL Server数据库 关键字:SQL Server数据库本文采用三种分页办法,最后对三种分页办法分析了其优缺点。 建立表: CREATETABLE[TestTable]( [ID][int]IDENTITY(1,1)NOTNULL, [FirstName][nvarcha

软件测试开发技术SQL Server数据库三种分页方案详尽分析 SQL Server数据库

关键字:SQL Server数据库本文采用三种分页办法,最后对三种分页办法分析了其优缺点。 

建立表: 


CREATE TABLE [TestTable] (
 [ID] [int] IDENTITY (1, 1) NOT NULL ,
 [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO
 

插入数据:(2万条,用更多的数据测试会明显一些) 


SET IDENTITY_INSERT TestTable ON

declare @i int
set @i=1
while @i<=20000
begin
    insert into TestTable([id], FirstName, LastName, Country,Note)
 values(@i, ’FirstName_XXX’,’LastName_XXX’,’Country_XXX’,’Note_XXX’)
    set @i=@i+1
end

SET IDENTITY_INSERT TestTable OFF
 


分页方案一: 

(利用Not In和SELECT TOP分页) 

语句形式: 


SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
          (SELECT TOP 20 id
         FROM TestTable
         ORDER BY id))
ORDER BY ID


SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
          (SELECT TOP 页大小*页数 id
         FROM 表
         ORDER BY id))
ORDER BY ID
 



分页方案二: 

(利用ID大于多少和SELECT TOP分页) 

语句形式: 


原文转自:http://www.ltesting.net