Többféle modell létezik a lapozott adatok megjelenítéséhez:
- Egyszerű lekérdezése lapozás nélkül, majd pedig a megjelenítő alkalmazás feladat megoldani, hogy lapozhatóan legyen a megjelenítés
- Lapozott lekérdezés a ROW_NUMBER használatával
- Lapozott lekérdezés az OFFSET és FETCH NEXT használatával
Mindkét esetben, amikor már eleve lapozva olvastatjuk fel az adatokat, érezhető a javulás. Célszerű az OFFSET és FETCH NEXT módszert alkalmazni nagy adatmennyiségnél az SQL SERVER 2012+ verziókban. Bővebb leírás és sebességteszt itt található.
Példakódok a lapozáshoz:
"ROW_NUMBER" használata:
DECLARE @PageNumber AS INT, @RowspPage AS INTSET @PageNumber = 2SET @RowspPage = 10
SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ID_EXAMPLE) AS Numero, ID_EXAMPLE, NM_EXAMPLE , DT_CREATE FROM TB_EXAMPLE ) AS TBLWHERE Numero BETWEEN ((@PageNumber - 1) * @RowspPage + 1) AND (@PageNumber * @RowspPage)ORDER BY ID_EXAMPLE
GO
GO
"OFFSET" és "FETCH NEXT" használata (SQL SERVER 2012):
DECLARE @PageNumber AS INT, @RowspPage AS INTSET @PageNumber = 2SET @RowspPage = 10
SELECT ID_EXAMPLE, NM_EXAMPLE, DT_CREATEFROM TB_EXAMPLEORDER BY ID_EXAMPLEOFFSET ((@PageNumber - 1) * @RowspPage) ROWSFETCH NEXT @RowspPage ROWS ONLY
GO
GO
Nincsenek megjegyzések:
Megjegyzés küldése