sql >> Database >  >> RDS >> Sqlserver

Totaal aantal rijen ophalen van OFFSET / FETCH NEXT

Ik ben enkele prestatieproblemen tegengekomen bij het gebruik van de COUNT() OVER()-methode. (Ik weet niet zeker of het de server was, aangezien het 40 seconden duurde om 10 records te retourneren en later geen problemen had.) Deze techniek werkte onder alle omstandigheden zonder COUNT( te gebruiken) ) OVER() en bereikt hetzelfde:

DECLARE 
    @PageSize INT = 10, 
    @PageNum  INT = 1;

WITH TempResult AS(
    SELECT ID, Name
    FROM Table
), TempCount AS (
    SELECT COUNT(*) AS MaxRows FROM TempResult
)
SELECT *
FROM TempResult, TempCount
ORDER BY TempResult.Name
    OFFSET (@PageNum-1)*@PageSize ROWS
    FETCH NEXT @PageSize ROWS ONLY


  1. Hulp nodig bij het selecteren van SQL-query's

  2. Meerdere records ophalen uit xml-kolom met waarde() in SQL Server

  3. Kan varchar niet converteren naar datetime in MySql

  4. Het verschil in maanden tussen datums in MySQL