日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer分頁操作指南(sqlserver怎么分頁)

隨著分頁被廣泛引入到網(wǎng)頁中,SQL server 分頁有著重要的地位。分頁可以顯示數(shù)據(jù)集中的一小部分,而不需要顯示整個(gè)數(shù)據(jù)集,這有助于減少通信量,提高性能和減輕服務(wù)器的負(fù)載。本文將介紹 SQL server 分頁前的行為準(zhǔn)備,SQL server 分頁的基本方法以及解決分頁中的性能問題的一些技巧。

成都創(chuàng)新互聯(lián)公司主營晉州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),晉州h5成都微信小程序搭建,晉州網(wǎng)站營銷推廣歡迎晉州等地區(qū)企業(yè)咨詢

## 使用ROW_number 來實(shí)現(xiàn)

在開始實(shí)現(xiàn) SQL Server 分頁之前,需要了解使用 [`ROW_NUMBER`](https://docs.microsoft.com/zh-cn/sql/t-sql/functions/row-number-transact-sql?view=sql-server-ver15) 來排序結(jié)果集。`ROW_NUMBER` 返回滿足指定條件的結(jié)果集中每一行的行號。例如,以下查詢使用 `ROW_NUMBER()` 將結(jié)果集按照 “name” 屬性進(jìn)行排序:

“`SQL

SELECT ROW_NUMBER() OVER(ORDER BY Name) RN,

Name

FROM Users;


該查詢返回的結(jié)果將按照 Name 屬性進(jìn)行排序,每一行都有一個(gè)用以標(biāo)識行號的 RN 列:

RN Name

1 John

2 Mary

3 Joe

4 Bill


通過使用 `ROW_NUMBER()` 函數(shù),可以實(shí)現(xiàn) SQL server 分頁。

## 分頁查詢

SQL server 中的分頁查詢是由 [`OFFSET`/`FETCH`](https://docs.microsoft.com/zh-cn/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15) 子句實(shí)現(xiàn)的。例如:

SELECT Name

FROM Users

ORDER BY Name

OFFSET 10 ROWS

FETCH NEXT 5 ROWS ONLY


該查詢將從整個(gè)結(jié)果集的第 10 行開始,獲取接下來的 5 行數(shù)據(jù):

Name

Joe

Mark

Paul

Tom

William


通過將 `ROW_NUMBER` 和 `OFFSET/FETCH` 結(jié)合起來應(yīng)用到 SQL Server 分頁查詢:

SELECT Name

FROM

(SELECT ROW_NUMBER() OVER(ORDER BY Name) RN,

Name

FROM Users

) AS T

WHERE RN BETWEEN 11 AND 15

將返回 `Joe`, `Mark`, `Paul`, `Tom`, `William` 這五行數(shù)據(jù)。
## 解決分頁查詢性能問題

如果我們經(jīng)常使用分頁查詢,可能會發(fā)現(xiàn)性能不是很好。此時(shí)可以考慮使用 [遞歸 CTE](https://docs.microsoft.com/zh-cn/sql/cte/cte-definition?view=sql-server-ver15) 來解決性能問題。

先以上邊的分頁查詢?yōu)槔覀兛梢允褂眠f歸 CTE 來進(jìn)行改造:

```SQL
WITH CTE AS
(
SELECT ROW_NUMBER() OVER(ORDER BY Name) RN,
Name
FROM Users
WHERE RN BETWEEN 11 AND 15
UNION ALL
SELECT ROW_NUMBER() OVER(ORDER BY Name) RN,
Name
FROM Users
WHERE RN
)
SELECT Name FROM CTE

通過將分頁查詢拆分成兩個(gè)獨(dú)立的查詢,并將它們通過 UNION ALL 組合在一起,可以有效地解決性能問題。

本文介紹了如何實(shí)現(xiàn) SQL server 分頁,以及如何解決分頁查詢中性能問題的一些技巧,在使用分頁查詢時(shí)應(yīng)該嘗試上邊介紹的方法,以提高性能。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。


名稱欄目:SQLServer分頁操作指南(sqlserver怎么分頁)
網(wǎng)址分享:http://www.5511xx.com/article/dpdddee.html