成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server 存儲過程的分頁

數據庫 SQL Server
SQL Server數據庫應用很廣泛的數據庫管理系統,在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分頁)

  語句形式:

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


  分頁方案三:(利用SQL的游標存儲過程分頁)

create procedure XiaoZhengGe
@sqlstr nvarchar(4000),
--查詢字符串
@currentpage int,
--第N頁
@pagesize int
--每頁行數
as
set nocount on
declare @P1 int,
--P1是游標的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,
@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 總頁數
--,@rowcount as 總行數,@currentpage as 當前頁
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off


  其它的方案:如果沒有主鍵,可以用臨時表,也可以用方案三做,但是效率會低。建議優化的時候,加上主鍵和索引,查詢效率會提高。

  通過SQL 查詢分析器,顯示比較:我的結論是:

  分頁方案二:(利用ID大于多少和SELECT TOP分頁)效率最高,需要拼接SQL語句

  分頁方案一:(利用Not In和SELECT TOP分頁) 效率次之,需要拼接SQL語句

  分頁方案三:(利用SQL的游標存儲過程分頁) 效率最差,但是最為通用

上文中為大家介紹了這幾種方案,當然,這些方案并不是萬能的,所以大家還是要根據具體的情況案例來采用合適的方案,這里我只是為大家總結了一下經驗,便于大家在不懂的時候參考,大家就各取所需吧。

【編輯推薦】

  1. 使用存儲過程都有哪些益處
  2. 解決SQL Server虛擬內存不足情況
  3. SQL Server 2008空間數據應用系列八:基于Bing Maps(Silverlight)的空間數據存儲
責任編輯:迎迎 來源: 百度
相關推薦

2011-03-28 10:46:36

sql server存儲分頁

2010-09-14 10:47:45

sql server存

2010-06-30 14:36:49

SQL Server

2010-06-18 10:34:38

SQL Server

2010-11-10 15:16:14

Sql Server分

2011-06-17 17:37:16

JavaSQL Server

2010-09-03 15:08:03

SQLselect語句

2010-07-15 12:38:14

SQL Server存

2011-08-29 10:55:03

SQL Server分頁存儲過程優化效率分

2009-08-06 16:44:06

2010-11-10 13:03:15

SQL Server存

2011-08-09 10:21:55

SQL Server存儲過程分頁

2010-09-14 10:16:57

sql server

2010-11-12 09:46:55

Sql Server存

2010-09-14 10:36:23

sql server存

2011-08-16 16:59:58

PLSQL分頁存儲過程Java

2012-05-10 11:17:23

JavaSQL Server

2011-03-31 10:38:28

SQL Server編寫優化

2010-11-10 15:47:59

2010-11-29 09:12:46

sybase分頁存儲過
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄网站在线播放 | 久久精品亚洲国产奇米99 | 亚洲精品国产精品国自产在线 | 狠狠色网 | 国内自拍视频在线观看 | 国产乱码精品一区二区三区五月婷 | 国产精品一区二区不卡 | 成人午夜免费在线视频 | 久久久综合色 | 国产精品日韩欧美一区二区 | 欧美一级黄色片在线观看 | 日本xx视频免费观看 | 欧美一级淫片免费视频黄 | 在线观看免费国产 | 国产偷自视频区视频 | 日韩成人高清 | 午夜a√| 欧美精品第三页 | 日韩成人免费视频 | av三级| 国产在线中文字幕 | 农村真人裸体丰满少妇毛片 | www.五月天婷婷 | 国产激情在线播放 | 国产精品久久国产精品 | 最新超碰 | 欧美三区 | 精品国产一区二区国模嫣然 | 91麻豆精品国产91久久久更新资源速度超快 | 三级视频网站 | 免费看日韩视频 | 国产精品久久久久久久一区二区 | 在线国产视频 | www.日本在线观看 | 久久亚洲欧美日韩精品专区 | 久久久tv | 青青草视频免费观看 | 色橹橹欧美在线观看视频高清 | 国产97在线 | 日韩 | 青青草原精品99久久精品66 | 一级片免费在线观看 |