1SQL Server 存储过程的分页(转载)SQL Server 存储过程的分页
  2SQL Server 存储过程的分页(转载)建立表:
  3SQL Server 存储过程的分页(转载)
  4SQL Server 存储过程的分页(转载)CREATE TABLE [TestTable] (
  5SQL Server 存储过程的分页(转载) [ID] [int] IDENTITY (11NOT NULL ,
  6SQL Server 存储过程的分页(转载) [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
  7SQL Server 存储过程的分页(转载) [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
  8SQL Server 存储过程的分页(转载) [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
  9SQL Server 存储过程的分页(转载) [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL 
 10SQL Server 存储过程的分页(转载)ON [PRIMARY]
 11SQL Server 存储过程的分页(转载)GO
 12SQL Server 存储过程的分页(转载)
 13SQL Server 存储过程的分页(转载) 
 14SQL Server 存储过程的分页(转载)
 15SQL Server 存储过程的分页(转载)插入数据:(2万条,用更多的数据测试会明显一些)
 16SQL Server 存储过程的分页(转载)SET IDENTITY_INSERT TestTable ON
 17SQL Server 存储过程的分页(转载)
 18SQL Server 存储过程的分页(转载)declare @i int
 19SQL Server 存储过程的分页(转载)set @i=1
 20SQL Server 存储过程的分页(转载)while @i<=20000
 21SQL Server 存储过程的分页(转载)begin
 22SQL Server 存储过程的分页(转载)    insert into TestTable([id], FirstName, LastName, Country,Note) values(@i'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
 23SQL Server 存储过程的分页(转载)    set @i=@i+1
 24SQL Server 存储过程的分页(转载)end
 25SQL Server 存储过程的分页(转载)
 26SQL Server 存储过程的分页(转载)SET IDENTITY_INSERT TestTable OFF
 27SQL Server 存储过程的分页(转载)
 28SQL Server 存储过程的分页(转载) 
 29SQL Server 存储过程的分页(转载)
 30SQL Server 存储过程的分页(转载)-------------------------------------
 31SQL Server 存储过程的分页(转载)
 32SQL Server 存储过程的分页(转载)分页方案一:(利用Not In和SELECT TOP分页)
 33SQL Server 存储过程的分页(转载)语句形式:
 34SQL Server 存储过程的分页(转载)SELECT TOP 10 *
 35SQL Server 存储过程的分页(转载)FROM TestTable
 36SQL Server 存储过程的分页(转载)WHERE (ID NOT IN
 37SQL Server 存储过程的分页(转载)          (SELECT TOP 20 id
 38SQL Server 存储过程的分页(转载)         FROM TestTable
 39SQL Server 存储过程的分页(转载)         ORDER BY id))
 40SQL Server 存储过程的分页(转载)ORDER BY ID
 41SQL Server 存储过程的分页(转载)
 42SQL Server 存储过程的分页(转载)
 43SQL Server 存储过程的分页(转载)SELECT TOP 页大小 *
 44SQL Server 存储过程的分页(转载)FROM TestTable
 45SQL Server 存储过程的分页(转载)WHERE (ID NOT IN
 46SQL Server 存储过程的分页(转载)          (SELECT TOP 页大小*页数 id
 47SQL Server 存储过程的分页(转载)         FROM 表
 48SQL Server 存储过程的分页(转载)         ORDER BY id))
 49SQL Server 存储过程的分页(转载)ORDER BY ID
 50SQL Server 存储过程的分页(转载)
 51SQL Server 存储过程的分页(转载)-------------------------------------
 52SQL Server 存储过程的分页(转载)
 53SQL Server 存储过程的分页(转载)分页方案二:(利用ID大于多少和SELECT TOP分页)
 54SQL Server 存储过程的分页(转载)语句形式:
 55SQL Server 存储过程的分页(转载)SELECT TOP 10 *
 56SQL Server 存储过程的分页(转载)FROM TestTable
 57SQL Server 存储过程的分页(转载)WHERE (ID >
 58SQL Server 存储过程的分页(转载)          (SELECT MAX(id)
 59SQL Server 存储过程的分页(转载)         FROM (SELECT TOP 20 id
 60SQL Server 存储过程的分页(转载)                 FROM TestTable
 61SQL Server 存储过程的分页(转载)                 ORDER BY id) AS T))
 62SQL Server 存储过程的分页(转载)ORDER BY ID
 63SQL Server 存储过程的分页(转载)
 64SQL Server 存储过程的分页(转载)
 65SQL Server 存储过程的分页(转载)SELECT TOP 页大小 *
 66SQL Server 存储过程的分页(转载)FROM TestTable
 67SQL Server 存储过程的分页(转载)WHERE (ID >
 68SQL Server 存储过程的分页(转载)          (SELECT MAX(id)
 69SQL Server 存储过程的分页(转载)         FROM (SELECT TOP 页大小*页数 id
 70SQL Server 存储过程的分页(转载)                 FROM 表
 71SQL Server 存储过程的分页(转载)                 ORDER BY id) AS T))
 72SQL Server 存储过程的分页(转载)ORDER BY ID
 73SQL Server 存储过程的分页(转载)
 74SQL Server 存储过程的分页(转载)
 75SQL Server 存储过程的分页(转载)-------------------------------------
 76SQL Server 存储过程的分页(转载)
 77SQL Server 存储过程的分页(转载)分页方案三:(利用SQL的游标存储过程分页)
 78SQL Server 存储过程的分页(转载)create  procedure XiaoZhengGe
 79SQL Server 存储过程的分页(转载)@sqlstr nvarchar(4000), --查询字符串
 80SQL Server 存储过程的分页(转载)@currentpage int--第N页
 81SQL Server 存储过程的分页(转载)@pagesize int --每页行数
 82SQL Server 存储过程的分页(转载)as
 83SQL Server 存储过程的分页(转载)set nocount on
 84SQL Server 存储过程的分页(转载)declare @P1 int--P1是游标的id
 85SQL Server 存储过程的分页(转载) @rowcount int
 86SQL Server 存储过程的分页(转载)exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
 87SQL Server 存储过程的分页(转载)select ceiling(1.0*@rowcount/@pagesizeas 总页数--,@rowcount as 总行数,@currentpage as 当前页 
 88SQL Server 存储过程的分页(转载)set @currentpage=(@currentpage-1)*@pagesize+1
 89SQL Server 存储过程的分页(转载)exec sp_cursorfetch @P1,16,@currentpage,@pagesize 
 90SQL Server 存储过程的分页(转载)exec sp_cursorclose @P1
 91SQL Server 存储过程的分页(转载)set nocount off
 92SQL Server 存储过程的分页(转载)
 93SQL Server 存储过程的分页(转载)其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
 94SQL Server 存储过程的分页(转载)建议优化的时候,加上主键和索引,查询效率会提高。
 95SQL Server 存储过程的分页(转载)
 96SQL Server 存储过程的分页(转载)通过SQL 查询分析器,显示比较:我的结论是:
 97SQL Server 存储过程的分页(转载)分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
 98SQL Server 存储过程的分页(转载)分页方案一:(利用Not In和SELECT TOP分页)   效率次之,需要拼接SQL语句
 99SQL Server 存储过程的分页(转载)分页方案三:(利用SQL的游标存储过程分页)    效率最差,但是最为通用
100SQL Server 存储过程的分页(转载)
101SQL Server 存储过程的分页(转载)在实际情况中,要具体分析。

相关文章: