Saya memiliki Employee
tabel yang memiliki satu juta catatan. Saya telah mengikuti SQL untuk paging data dalam aplikasi web. Ini bekerja dengan baik. Namun apa yang saya lihat sebagai masalah adalah - tabel turunan tblEmployee
memilih semua rekaman dalam Employee
tabel (untuk membuat MyRowNumber
nilai).
Saya pikir, ini menyebabkan pemilihan semua catatan dalam Employee
tabel.
Apakah ini benar-benar berfungsi? Atau SQL Server dioptimalkan untuk memilih hanya 5 catatan dari Employee
tabel asli juga?
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