Employee
Bir 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 tblEmployee
tüm kayıtları seçer .Employee
MyRowNumber
Sanırım, bu Employee
tablodaki tüm kayıtların seçilmesine neden oluyor .
Gerçekten çalışıyor mu? Yoksa SQL Server yalnızca özgün Employee
tablodan 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