EmployeeBir milyon kaydı olan bir masam var. Bir web uygulamasında veri disk belleği için aşağıdaki SQL var. İyi çalışıyor. Ancak ben bir sorun olarak gördüğüm - türetilmiş tablo ( değerleri oluşturmak için ) tablodaki tblEmployeetüm kayıtları seçer .EmployeeMyRowNumber
Sanırım, bu Employeetablodaki tüm kayıtların seçilmesine neden oluyor .
Gerçekten çalışıyor mu? Yoksa SQL Server yalnızca özgün Employeetablodan yalnızca 5 kayıt seçmek için optimize edilmiş mi?
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