Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Manakah cara terbaik untuk melakukan pagination di SQL Server?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL ping server eksternal

  2. Bagaimana cara mengembalikan angka acak sebagai kolom di SQL Server 2005?

  3. Keuntungan SQL Server 2008 dibandingkan SQL Server 2005?

  4. Buat Pemicu untuk mencatat SQL yang memengaruhi tabel?

  5. SQL untuk mengembalikan dua kolom pertama dari sebuah tabel