中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

高效的SQLSERVER分頁查詢
來源:易賢網 閱讀:1296 次 日期:2014-11-03 11:52:07
溫馨提示:易賢網小編為您整理了“高效的SQLSERVER分頁查詢”,方便廣大網友查閱!

Sqlserver數據庫分頁查詢一直是Sqlserver的短板,閑來無事,想出幾種方法,假設有表ARTICLE,字段ID、YEAR...(其他省略),數據53210條(客戶真實數據,量不大),分頁查詢每頁30條,查詢第1500頁(即第45001-45030條數據),字段ID聚集索引,YEAR無索引,Sqlserver版本:2008R2

第一種方案、最簡單、普通的方法:

復制代碼代碼如下:

SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC

平均查詢100次所需時間:45s

第二種方案:

復制代碼代碼如下:

SELECT * FROM (SELECT TOP 30 * FROM (SELECT TOP 45030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC) s ORDER BY s.YEAR DESC,s.ID DESC

平均查詢100次所需時間:138S

第三種方案:

復制代碼代碼如下:

SELECT * FROM ARTICLE w1,

(

SELECT TOP 30 ID FROM

(

SELECT TOP 50030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC

) w ORDER BY w.YEAR ASC, w.ID ASC

) w2 WHERE w1.ID = w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC

平均查詢100次所需時間:21S

第四種方案:

復制代碼代碼如下:

SELECT * FROM ARTICLE w1

WHERE ID in

(

SELECT top 30 ID FROM

(

SELECT top 45030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC

) w ORDER BY w.YEAR ASC, w.ID ASC

)

ORDER BY w1.YEAR DESC, w1.ID DESC

平均查詢100次所需時間:20S

第五種方案:

復制代碼代碼如下:

SELECT w2.n, w1.* FROM ARTICLE w1, (SELECT TOP 50030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE ) w2 WHERE w1.ID = w2.ID AND w2.n > 50000 ORDER BY w2.n ASC

平均查詢100次所需時間:15S

查詢第1000-1030條記錄

第一種方案:

復制代碼代碼如下:

SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 1000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC

平均查詢100次所需時間:80s

第二種方案:

復制代碼代碼如下:

SELECT * FROM ( SELECT TOP 30 * FROM (SELECT TOP 1030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC) s ORDER BY s.YEAR DESC,s.ID DESC

平均查詢100次所需時間:30S

第三種方案:

復制代碼代碼如下:

SELECT * FROM ARTICLE w1,

(

SELECT TOP 30 ID FROM

(

SELECT TOP 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC

) w ORDER BY w.YEAR ASC, w.ID ASC

) w2 WHERE w1.ID = w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC

平均查詢100次所需時間:12S

第四種方案:

復制代碼代碼如下:

SELECT * FROM ARTICLE w1

WHERE ID in

(

SELECT top 30 ID FROM

(

SELECT top 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC

) w ORDER BY w.YEAR ASC, w.ID ASC

)

ORDER BY w1.YEAR DESC, w1.ID DESC

平均查詢100次所需時間:13S

第五種方案:

復制代碼代碼如下:

SELECT w2.n, w1.* FROM ARTICLE w1,( SELECT TOP 1030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE) w2 WHERE w1.ID = w2.ID AND w2.n > 1000 ORDER BY w2.n ASC

平均查詢100次所需時間:14S

由此可見在查詢頁數靠前時,效率3>4>5>2>1,頁碼靠后時5>4>3>1>2,再根據用戶習慣,一般用戶的檢索只看最前面幾頁,因此選擇3 4 5方案均可,若綜合考慮方案5是最好的選擇,但是要注意SQL2000不支持row_number()函數,由于時間和條件的限制沒有做更深入、范圍更廣的測試,有興趣的可以仔細研究下。

以下是根據第四種方案編寫的一個分頁存儲過程:

復制代碼代碼如下:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sys_Page_v2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[sys_Page_v2]

GO

CREATE PROCEDURE [dbo].[sys_Page_v2]

@PCount int output, --總頁數輸出

@RCount int output, --總記錄數輸出

@sys_Table nvarchar(100), --查詢表名

@sys_Key varchar(50), --主鍵

@sys_Fields nvarchar(500), --查詢字段

@sys_Where nvarchar(3000), --查詢條件

@sys_Order nvarchar(100), --排序字段

@sys_Begin int, --開始位置

@sys_PageIndex int, --當前頁數

@sys_PageSize int --頁大小

AS

SET NOCOUNT ON

SET ANSI_WARNINGS ON

IF @sys_PageSize < 0 OR @sys_PageIndex < 0

BEGIN

RETURN

END

DECLARE @new_where1 NVARCHAR(3000)

DECLARE @new_order1 NVARCHAR(100)

DECLARE @new_order2 NVARCHAR(100)

DECLARE @Sql NVARCHAR(4000)

DECLARE @SqlCount NVARCHAR(4000)

DECLARE @Top int

if(@sys_Begin <=0)

set @sys_Begin=0

else

set @sys_Begin=@sys_Begin-1

IF ISNULL(@sys_Where,'') = ''

SET @new_where1 = ' '

ELSE

SET @new_where1 = ' WHERE ' + @sys_Where

IF ISNULL(@sys_Order,'') <> ''

BEGIN

SET @new_order1 = ' ORDER BY ' + Replace(@sys_Order,'desc','')

SET @new_order1 = Replace(@new_order1,'asc','desc')

SET @new_order2 = ' ORDER BY ' + @sys_Order

END

ELSE

BEGIN

SET @new_order1 = ' ORDER BY ID DESC'

SET @new_order2 = ' ORDER BY ID ASC'

END

SET @SqlCount = 'SELECT @RCount=COUNT(1),@PCount=CEILING((COUNT(1)+0.0)/'

+ CAST(@sys_PageSize AS NVARCHAR)+') FROM ' + @sys_Table + @new_where1

EXEC SP_EXECUTESQL @SqlCount,N'@RCount INT OUTPUT,@PCount INT OUTPUT',

@RCount OUTPUT,@PCount OUTPUT

IF @sys_PageIndex > CEILING((@RCount+0.0)/@sys_PageSize) --如果輸入的當前頁數大于實際總頁數,則把實際總頁數賦值給當前頁數

BEGIN

SET @sys_PageIndex = CEILING((@RCount+0.0)/@sys_PageSize)

END

set @sql = 'select '+ @sys_fields +' from ' + @sys_Table + ' w1 '

+ ' where '+ @sys_Key +' in ('

+'select top '+ ltrim(str(@sys_PageSize)) +' ' + @sys_Key + ' from '

+'('

+'select top ' + ltrim(STR(@sys_PageSize * @sys_PageIndex + @sys_Begin)) + ' ' + @sys_Key + ' FROM '

+ @sys_Table + @new_where1 + @new_order2

+') w ' + @new_order1

+') ' + @new_order2

print(@sql)

Exec(@sql)

GO

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:高效的SQLSERVER分頁查詢
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美激情精品久久久久久久变态| 91久久精品国产91久久性色| 国产精品视频自拍| 亚洲免费精彩视频| 欧美激情在线观看| 亚洲精品日本| 国产精品高潮呻吟久久| av成人毛片| 国产日韩精品一区二区三区| 亚洲一区二区在线| 国产欧美综合在线| 久久亚洲欧美| 在线视频一区观看| 国产亚洲精品高潮| 欧美大片在线看免费观看| 一本色道久久综合精品竹菊 | 亚洲欧美日韩专区| 国产欧美日韩视频在线观看| 久久国产免费| 日韩视频免费| 国产小视频国产精品| 另类激情亚洲| 亚洲欧美网站| 日韩亚洲欧美在线观看| 国产农村妇女毛片精品久久莱园子 | 欧美精品videossex性护士| 激情亚洲成人| 国产视频久久久久| 国产精品第十页| 麻豆久久婷婷| 老司机免费视频一区二区三区| 亚洲视频axxx| a4yy欧美一区二区三区| 国模私拍一区二区三区| 国产日韩欧美在线看| 欧美色另类天堂2015| 欧美韩日视频| 欧美激情视频在线播放| 狂野欧美一区| 欧美 日韩 国产一区二区在线视频| 久久男人av资源网站| 久久国内精品自在自线400部| 性做久久久久久久久| 久久国产日本精品| 久久一区中文字幕| 欧美在线国产精品| 老鸭窝毛片一区二区三区| 美女精品自拍一二三四| 欧美高清视频在线| 欧美电影资源| 欧美三级不卡| 国产综合婷婷| 9l国产精品久久久久麻豆| 亚洲一级片在线看| 久久久无码精品亚洲日韩按摩| 欧美大片免费看| 国产深夜精品| 99视频热这里只有精品免费| 亚洲欧美区自拍先锋| 久久偷看各类wc女厕嘘嘘偷窃| 久久手机精品视频| 欧美午夜久久久| 亚洲一区图片| 欧美喷潮久久久xxxxx| 国产精品第一页第二页第三页| 国产视频一区二区三区在线观看| 亚洲激情亚洲| 久久久久国产免费免费| 国产精品久久久久久模特| 亚洲大胆美女视频| 久久本道综合色狠狠五月| 欧美久久久久久蜜桃| 狠狠色噜噜狠狠狠狠色吗综合| 一区二区动漫| 欧美精品乱人伦久久久久久| 好吊一区二区三区| 久久国产88| 国产精品久久久久av免费| 亚洲精品久久久一区二区三区| 久久免费视频网| 亚洲狠狠丁香婷婷综合久久久| 免费一级欧美片在线观看| 激情欧美日韩一区| 久久久久国色av免费看影院| 尤物精品国产第一福利三区| 欧美国产日本高清在线| 国产伦精品免费视频| 一区二区三区不卡视频在线观看| 欧美日韩成人精品| 亚洲缚视频在线观看| 快播亚洲色图| 欧美伊人精品成人久久综合97| 欧美日韩国产综合视频在线观看中文 | 国产婷婷97碰碰久久人人蜜臀| 一区二区三区**美女毛片| 欧美韩日一区二区| 亚洲免费观看| 欧美肉体xxxx裸体137大胆| 91久久久精品| 欧美日韩中文字幕精品| 性欧美暴力猛交69hd| 黄色另类av| 国产精品男女猛烈高潮激情| 欧美日韩视频免费播放| 亚洲深夜福利在线| 欧美日韩福利在线观看| 午夜欧美大尺度福利影院在线看| 欧美视频一区二区三区在线观看| 午夜免费在线观看精品视频| 国产日韩欧美黄色| 国产欧美精品在线| 欧美xxxx在线观看| 亚洲尤物影院| 国产欧美日韩在线| 你懂的国产精品| 新片速递亚洲合集欧美合集| 国产夜色精品一区二区av| 麻豆精品视频在线| 久久国产精品亚洲77777| 亚洲精品在线免费| 国内成人在线| 国产啪精品视频| 女人色偷偷aa久久天堂| 欧美一区二区视频网站| 99视频精品在线| 亚洲国产欧美日韩另类综合| 亚洲国产日韩欧美综合久久| 国产日韩欧美不卡在线| 国产欧美日本一区二区三区| 欧美韩日一区| 老司机精品导航| 久久亚洲综合色一区二区三区| 亚洲一区在线观看视频 | 久久久久国产精品www| 亚洲无亚洲人成网站77777| 亚洲大片精品永久免费| 樱桃成人精品视频在线播放| 国产午夜精品久久| 国产一区二三区| 国产精品国产三级欧美二区| 女人色偷偷aa久久天堂| 欧美激情精品久久久久久变态| 欧美精品一线| 欧美午夜一区二区| 国产综合色在线视频区| 亚洲裸体在线观看| 亚洲一区图片| 欧美成人精品三级在线观看| 欧美日本亚洲视频| 激情一区二区三区| 亚洲一区二区不卡免费| 久久人91精品久久久久久不卡 | 亚洲高清一区二| 亚洲乱码国产乱码精品精天堂| 亚洲人午夜精品免费| 欧美一区二区三区四区在线观看| 欧美专区在线观看| 国产精品美女久久久久久免费| 狠狠色狠狠色综合人人| 亚洲午夜免费视频| 欧美成人午夜激情| 极品尤物一区二区三区| 亚洲女同在线| 国产精品v欧美精品∨日韩| 在线观看国产精品淫| 久久亚洲一区二区三区四区| 国产精品青草综合久久久久99| 亚洲黄色在线看| 午夜精品影院| 国产精品扒开腿做爽爽爽软件 | 欧美高清在线视频观看不卡| 在线观看视频欧美| 久久久久久夜| 国产综合欧美在线看| 亚洲调教视频在线观看| 久久久精品午夜少妇| 国产偷国产偷精品高清尤物| 亚洲精品乱码久久久久久蜜桃麻豆 | 美日韩丰满少妇在线观看| 国产精品麻豆成人av电影艾秋| 一区二区三区久久网| 欧美激情精品久久久久久变态| 国产精品男gay被猛男狂揉视频| 午夜日韩电影| 在线免费观看日本欧美| 欧美一区二区精品| 欧美精品久久久久久久久老牛影院 | 亚洲美女视频在线观看| 欧美激情乱人伦| 老司机成人在线视频| 日韩一级精品| 在线播放国产一区中文字幕剧情欧美| 亚洲精品专区| 加勒比av一区二区| 午夜精品久久久久久久99水蜜桃 | 欧美在线电影| 精品91久久久久| 亚洲欧美资源在线| 亚洲一区二区在线免费观看视频| 男人天堂欧美日韩|