Saya memiliki Employeetabel 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 tblEmployeememilih semua rekaman dalam Employeetabel (untuk membuat MyRowNumbernilai).
Saya pikir, ini menyebabkan pemilihan semua catatan dalam Employeetabel.
Apakah ini benar-benar berfungsi? Atau SQL Server dioptimalkan untuk memilih hanya 5 catatan dari Employeetabel 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