ALTER PROCEDURE [dbo].[SP_tblTest_SelectSpecificRecordsWithCTE]
@FromRow int = 1000000,
@PgSize int = 10
AS
BEGIN
;WITH RecordsRN AS
(
select ID, colValue, ROW_NUMBER() over(order by colvalue) as Num from tblTest
)
SELECT ID Value, colValue Text FROM RecordsRN WHERE Num between @FromRow AND (@[email protected])
END
itu adalah kueri yang saya gunakan untuk paging. gunakan dan Anda akan mendapatkan 10 catatan yang Anda inginkan dalam 4-5 detik. saya mendapatkan 10 catatan dalam 3 detik dan total catatan di db saya adalah 10 juta, jangan gunakan 10 teratas itu hanya akan membawa 10 catatan yang sama setiap saat. dalam kasus saya, saya mempertahankan ukuran halaman dan memulai nomor baris (@FromRow) dalam sesi dan saya meneruskan dua nilai ini ke prosedur tersimpan yang diberikan di bawah ini dan mendapatkan hasilnya. Lebih jauh lagi jika Anda menggunakan SQL 2012 Anda mungkin ingin menggunakan OFFSET dan Ambil 10 baris berikutnya. cari di google tentang kata kunci OFFSET dan Anda akan melihat hasil yang Anda inginkan di atas.
terima kasih