ฉันมีEmployee
ตารางที่มีหนึ่งล้านบันทึก ฉันได้ติดตาม SQL สำหรับข้อมูลการเพจในเว็บแอปพลิเคชัน มันทำงานได้ดี อย่างไรก็ตามสิ่งที่ฉันเห็นว่าเป็นปัญหาคือ - ตารางที่ได้รับtblEmployee
จะเลือกระเบียนทั้งหมดในEmployee
ตาราง (เพื่อสร้าง MyRowNumber
ค่า)
ฉันคิดว่านี่เป็นสาเหตุของการเลือกระเบียนทั้งหมดในEmployee
ตาราง
มันใช้งานได้จริงเหรอ? หรือ SQL Server นั้นได้รับการปรับแต่งให้เลือกเฉพาะ 5 ระเบียนจากEmployee
ตารางต้นฉบับด้วยหรือไม่
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