Saya memiliki permintaan basis data yang dapat menghasilkan kumpulan hasil yang besar. Klien yang menampilkan data menerima data melalui jaringan, jadi idenya adalah untuk meminimalkan jumlah data yang ditransfer dengan mengambil hanya 50 hasil pertama dari database dan mengirimkannya ke klien. Lalu saya akan memberikan kemungkinan untuk melompat ke halaman kedua untuk mengambil 50 hasil berikutnya, dll. (Sesuatu yang mirip seperti yang ditawarkan google)
Pertanyaannya adalah apa cara efektif menerapkan paging. Saya ingin memastikan bahwa mssql menggunakan cache sebanyak mungkin dan hal yang sama tidak dieksekusi sekali lagi setiap kali saya mengubah halaman.
Ada lebih banyak klien yang menanyakan database dalam waktu bersamaan. Mesin sql yang digunakan: MS SQL 2005
Gagasan saya adalah:
- Gunakan statemenst sql siap untuk memastikan berbagi rencana eksekusi
- gunakan ROW_COUNT variabel untuk mengambil hanya baris yang diperlukan
Tetapi apakah ini benar-benar cara yang paling efektif? Atau apakah Anda berpikir bahwa akan lebih baik untuk mengambil seluruh hasil yang ditetapkan dan menerapkan paging dalam kode yang mengirimkan data ke klien?
Terima kasih atas tipsnya!
Salam, Tomas