У мене є запит до бази даних, який може призвести до великого набору результатів. Клієнт, який відображає дані, отримує дані по мережі, тому ідея полягала в тому, щоб мінімізувати кількість переданих даних шляхом отримання лише перших 50 результатів із бази даних та відправлення їх клієнту. Тоді я надаю можливість перейти на другу сторінку, щоб отримати наступні 50 результатів тощо (щось подібне, наприклад, наприклад, google)
Питання в тому, який ефективний спосіб реалізації пейджингу. Я хочу переконатися, що mssql використовує кеш якнайбільше, і той самий не виконується ще раз щоразу, коли я змінюю підкачку.
Є більше клієнтів, які запитують базу даних одночасно. Використовуваний двигун sql: MS SQL 2005
Мої ідеї:
- Використовуйте підготовлений sql statemenst для забезпечення спільного використання плану виконання
- використовуйте змінну ROW_COUNT для отримання лише необхідних рядків
Але чи справді це найефективніший спосіб? Або ви вважаєте, що було б краще відновити весь набір результатів і здійснити пейджинговий код у коді, який надсилає дані клієнту?
Дякую за поради!
З повагою, Томаш