Ich habe einen Employee
Tisch mit einer Million Datensätzen. Ich verfolge SQL zum Paging von Daten in einer Webanwendung. Es funktioniert gut. Was ich jedoch als Problem sehe, ist, dass die abgeleitete Tabelle tblEmployee
alle Datensätze in der Employee
Tabelle auswählt (um die MyRowNumber
Werte zu erstellen ).
Ich denke, dies bewirkt die Auswahl aller Datensätze in der Employee
Tabelle.
Funktioniert es wirklich so? Oder ist SQL Server so optimiert, dass nur die 5 Datensätze aus der Originaltabelle ausgewählt Employee
werden?
DECLARE @Index INT;
DECLARE @PageSize INT;
SET @Index = 3;
SET @PageSize = 5;
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY EmpID asc) as MyRowNumber,*
FROM Employee) tblEmployee
WHERE MyRowNumber BETWEEN ( ((@Index - 1) * @PageSize )+ 1) AND @Index*@PageSize