Eu tenho uma consulta ao banco de dados que pode resultar em um grande conjunto de resultados. O cliente que exibe os dados recebe os dados pela rede; portanto, a idéia era minimizar a quantidade de dados transferidos, recuperando apenas os 50 primeiros resultados do banco de dados e enviando-os para o cliente. Então, fornecerei a possibilidade de pular para a segunda página para recuperar os próximos 50 resultados etc. (algo semelhante ao que o Google oferece)
A questão é qual é a maneira eficaz de implementar a paginação. Quero ter certeza de que o mssql use o cache o máximo possível e que o mesmo não seja executado novamente sempre que alterar a paginação.
Existem mais clientes que estão consultando o banco de dados ao mesmo tempo. Mecanismo sql usado: MS SQL 2005
Minhas idéias foram:
- Use sql statemenst preparado para garantir o compartilhamento do plano de execução
- use a variável ROW_COUNT para recuperar apenas as linhas necessárias
Mas é realmente a maneira mais eficaz? Ou você acha que seria melhor recuperar todo o conjunto de resultados e implementar a paginação no código que envia os dados para o cliente?
Obrigado por suas dicas!
Atenciosamente, Tomas