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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

實(shí)現(xiàn)分頁(yè)的有效方法

實(shí)現(xiàn)分頁(yè)的有效方法

胡說叔叔 2019-08-30 14:42:36
我應(yīng)該使用LINQ Skip()和Take()方法進(jìn)行分頁(yè),還是使用SQL查詢實(shí)現(xiàn)自己的分頁(yè)?哪個(gè)最有效?為什么我會(huì)選擇一個(gè)而不是另一個(gè)?我正在使用SQL Server 2008,ASP.NET MVC和LINQ。
查看完整描述

3 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

嘗試使用


FROM [TableX]

ORDER BY [FieldX]

OFFSET 500 ROWS

FETCH NEXT 100 ROWS ONLY

在SQL服務(wù)器中獲取501到600的行,而不將它們加載到內(nèi)存中。請(qǐng)注意,此語法僅適用于SQL Server 2012


查看完整回答
反對(duì) 回復(fù) 2019-08-30
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

然LINQ-to-SQL將生成一個(gè)OFFSET子句(可能使用ROW_NUMBER() OVER() 其他人提到的模擬),但在SQL中執(zhí)行分頁(yè)的方式卻完全不同,更快。這通常被稱為“搜索方法”,如本博客文章中所述。


SELECT TOP 10 first_name, last_name, score

FROM players

WHERE (score < @previousScore)

   OR (score = @previousScore AND player_id < @previousPlayerId)

ORDER BY score DESC, player_id DESC

該@previousScore和@previousPlayerId值是來自前一頁(yè)的最后一條記錄的相應(yīng)值。這允許您獲取“下一頁(yè)”。如果ORDER BY方向是ASC,只需使用>。


使用上述方法,您無法在未先讀取前40條記錄的情況下立即跳轉(zhuǎn)到第4頁(yè)。但通常情況下,你不想跳得那么遠(yuǎn)。相反,您可以獲得更快的查詢,該查詢可能能夠在固定時(shí)間內(nèi)獲取數(shù)據(jù),具體取決于您的索引。此外,無論基礎(chǔ)數(shù)據(jù)是否發(fā)生變化,您的頁(yè)面都將保持“穩(wěn)定”狀態(tài)(例如,在第4頁(yè)上,當(dāng)您在第4頁(yè)時(shí))。


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


注意,“搜索方法”也稱為鍵集尋呼。


查看完整回答
反對(duì) 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 506 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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