第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在SQLServer中分頁結(jié)果的最佳方法是什么

在SQLServer中分頁結(jié)果的最佳方法是什么

慕桂英546537 2019-06-18 13:32:58
在SQLServer中分頁結(jié)果的最佳方法是什么如果還想獲得結(jié)果總數(shù)(分頁前),那么在SQLServer 2000、2005、2008、2012中對結(jié)果進(jìn)行分頁的最佳方法(性能方面)是什么?
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

獲取結(jié)果總數(shù)和分頁是兩種不同的操作。為了這個例子,讓我們假設(shè)您正在處理的查詢是

SELECT * FROM Orders WHERE OrderDate >= '1980-01-01' ORDER BY OrderDate

在這種情況下,您將使用以下方法確定結(jié)果的總數(shù):

SELECT COUNT(*) FROM Orders WHERE OrderDate >= '1980-01-01'

.這看起來很低效,但實際上性能相當(dāng)好,假設(shè)所有索引等都已正確設(shè)置。

接下來,要以分頁的方式返回實際結(jié)果,以下查詢將是最有效的:

SELECT  *FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResultWHERE   RowNum >= 1
    AND RowNum < 20ORDER BY RowNum

這將返回原始查詢的第1-19行。這里最酷的是,特別是對于web應(yīng)用程序來說,除了要返回的行號之外,您不需要保留任何狀態(tài)。


查看完整回答
反對 回復(fù) 2019-06-18
?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊

令人難以置信的是,沒有其他答案提到最快在所有SQLServer版本中執(zhí)行分頁的方法。對于大頁碼,偏移量可能非常慢,如下所示標(biāo)桿..在SQL中執(zhí)行分頁的方法完全不同,速度要快得多。這通常稱為“查找方法”或“keyset分頁”,如這篇博文.

SELECT TOP 10 first_name, last_name, score, COUNT(*) OVER()FROM playersWHERE (score < @previousScore)
   OR (score = @previousScore AND player_id < @previousPlayerId)ORDER BY score DESC, player_id DESC

“尋求謂詞”

這個@previousScore@previousPlayerId值是上一頁上一條記錄的相應(yīng)值。這允許您獲取“下一步”頁面。如果ORDER BY方向是ASC,簡單地使用>相反。

使用上述方法,如果不首先獲取前40條記錄,就不能立即跳轉(zhuǎn)到第4頁。但通常情況下,你不想跳那么遠(yuǎn)。相反,您可以獲得一個更快的查詢,根據(jù)索引的不同,該查詢可能能夠在固定時間內(nèi)獲取數(shù)據(jù)。此外,無論底層數(shù)據(jù)是否發(fā)生變化(例如,在第1頁,而在第4頁上),您的頁面仍然是“穩(wěn)定的”。

例如,這是在Web應(yīng)用程序中延遲加載更多數(shù)據(jù)時實現(xiàn)分頁的最佳方法。

注意,“find方法”也稱為鍵集分頁.

分頁前記錄總數(shù)

這個COUNT(*) OVER()窗口函數(shù)將幫助您計算“分頁前”的總記錄數(shù)。如果使用的是SQLServer 2000,則必須對COUNT(*).


查看完整回答
反對 回復(fù) 2019-06-18
  • 3 回答
  • 0 關(guān)注
  • 787 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號