Ho una Employeetabella che ha un milione di record. Ho seguito SQL per i dati di paginazione in un'applicazione web. Funziona benissimo. Tuttavia ciò che vedo come un problema è: la tabella derivata tblEmployeeseleziona tutti i record nella Employeetabella (per creare i MyRowNumbervalori).
Penso che questo provochi la selezione di tutti i record nella Employeetabella.
Funziona davvero così? Oppure SQL Server è ottimizzato per selezionare solo i 5 record dalla Employeetabella originale ?
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