Ich habe einen EmployeeTisch 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 tblEmployeealle Datensätze in der EmployeeTabelle auswählt (um die MyRowNumberWerte zu erstellen ).
Ich denke, dies bewirkt die Auswahl aller Datensätze in der EmployeeTabelle.
Funktioniert es wirklich so? Oder ist SQL Server so optimiert, dass nur die 5 Datensätze aus der Originaltabelle ausgewählt Employeewerden?
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