2007-07-18

SQL Server数据库三种分页方案详尽分析

来源: 本站收集整理 作者:佚名 评论 0 条
 

本文采用三种分页办法,最后对三种分页办法分析了其优缺点。

建立表:

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分页)

语句形式:


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:如何在SQL Server中使用CLR调用.NET方法  
下一篇:解决SQL Server虚拟内存不足情况
    评论加载中…
SELECT TOP 10 *

FROM TestTable

WHERE (ID >

          (SELECT MAX(id)

         FROM (SELECT TOP 20 id

                 FROM TestTable

                 ORDER BY id) AS T))

ORDER BY ID





SELECT TOP 页大小 *

FROM TestTable

WHERE (ID >

          (SELECT MAX(id)

         FROM (SELECT TOP 页大小*页数 id

                 FROM 表

                 ORDER BY id) AS T))

ORDER BY ID
共2页: 上一页 1 [2] 下一页
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号