Ho una query di database che potrebbe comportare un grande set di risultati. Il client che visualizza i dati riceve i dati sulla rete, quindi l'idea era di ridurre al minimo la quantità di dati trasferiti recuperando solo i primi 50 risultati dal database e inviandoli al client. Quindi fornirò la possibilità di passare alla seconda pagina per recuperare i prossimi 50 risultati ecc. (Qualcosa di simile a ciò che offre ad esempio google)
La domanda è qual è il modo efficace di implementare il paging. Voglio assicurarmi che mssql usi la cache il più possibile e che lo stesso non venga eseguito ancora una volta ogni volta che cambio il paging.
Esistono più client che eseguono query sul database contemporaneamente. Motore sql usato: MS SQL 2005
Le mie idee erano:
- Utilizzare sql statemenst preparato per garantire la condivisione del piano di esecuzione
- utilizzare la variabile ROW_COUNT per recuperare solo le righe necessarie
Ma è davvero il modo più efficace? O pensi che sarebbe meglio recuperare l'intero set di risultati e implementare il paging nel codice che invia i dati al client?
Grazie per i tuoi consigli!
Saluti, Tomas