| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/04/2009 15:04:05
|
fabioissamu
JavaChild
Membro desde: 21/02/2007 16:48:46
Mensagens: 145
Localização: Rio de Janeiro
Offline
|
Você poderia postar qual foi a SQL gerada pelo Hibernate?
Acredito também que haja um cache e um proxy, ou seja, não é sempre que o banco de dados será acionado.
Outro dia estava pensando em uma forma para fazer estas paginações.
Se vc retornar uma consulta com 1.000.000 de resultados a formula para páginas seria
numeroDePaginas=totalDeRows/resultadoPorPagina;
se vc mostrar 10 resultados por página seriam 100.000 páginas
o que não caberia na tela (pagina 1,2,3 ... 100.000)
E normalmente exibimos poucas páginas umas 10 com setas para mais e menos, como o google.
Pensando desta forma vc poderia limitar os resultados para no máximo 100 a partir do 0
na primeira consulta.
E conforme o usuário fosse paginando vc retornaria os 100 depois do id X.
Criando um where com criteria, ou qq outra coisa.
This message was edited 1 time. Last update was at 30/04/2009 15:14:19
|
se tanto faz, então escolha o melhor.
http://www.goals.com.br |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2009 10:34:38
|
renatocustodio
JavaGuru
![[Avatar]](/images/avatar/7e3da1dca2700e3225382921dd70b8c7.jpg)
Membro desde: 04/03/2008 07:21:24
Mensagens: 249
Offline
|
No SQL gerado ele é mais ou menos um:
Isso supondo que ele está com Max em 9 e first em 27.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/05/2009 10:37:15
|
renatocustodio
JavaGuru
![[Avatar]](/images/avatar/7e3da1dca2700e3225382921dd70b8c7.jpg)
Membro desde: 04/03/2008 07:21:24
Mensagens: 249
Offline
|
fabioissamu wrote:Você poderia postar qual foi a SQL gerada pelo Hibernate?
Acredito também que haja um cache e um proxy, ou seja, não é sempre que o banco de dados será acionado.
Outro dia estava pensando em uma forma para fazer estas paginações.
Se vc retornar uma consulta com 1.000.000 de resultados a formula para páginas seria
numeroDePaginas=totalDeRows/resultadoPorPagina;
se vc mostrar 10 resultados por página seriam 100.000 páginas
o que não caberia na tela (pagina 1,2,3 ... 100.000)
E normalmente exibimos poucas páginas umas 10 com setas para mais e menos, como o google.
Pensando desta forma vc poderia limitar os resultados para no máximo 100 a partir do 0
na primeira consulta.
E conforme o usuário fosse paginando vc retornaria os 100 depois do id X.
Criando um where com criteria, ou qq outra coisa.
Na verdade a lógica da paginação está prontinha, e está funcionando perfeitamente, com essas setinhas, os pontinhos e tal. Mas o que me assustou foi o sql gerado que deu a impressão de que ele trouxe muita coisa do banco, mas jogou dentro do meu list apenas dentro da paginação que eu estabeleci.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 23:15:08
|
fabioissamu
JavaChild
Membro desde: 21/02/2007 16:48:46
Mensagens: 145
Localização: Rio de Janeiro
Offline
|
Parece codigo de SQL Server,
talvez esteja trazendo mais coisas do que o necessário.
Não lembro os comandos nativos de SQL Server, mas tinha alguma coisa no final do comando, um rowcount qq coisa do genero.
Vc pode rodar a consulta no query analizer ou outro e ver?
Depois posta o resultado, é legal saber se tem alguma penalidade.
Ultimamente uso mais MySql.
|
se tanto faz, então escolha o melhor.
http://www.goals.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2009 07:58:08
|
renatocustodio
JavaGuru
![[Avatar]](/images/avatar/7e3da1dca2700e3225382921dd70b8c7.jpg)
Membro desde: 04/03/2008 07:21:24
Mensagens: 249
Offline
|
fabioissamu wrote:Parece codigo de SQL Server,
talvez esteja trazendo mais coisas do que o necessário.
Sim, foi o que eu disse no meu primeiro post...
fabioissamu wrote:
Vc pode rodar a consulta no query analizer ou outro e ver?
Acho que não há necessidade. Com esse sql ele está trazendo 36 registros em vez de 9, que seria o ideal no meu caso...
fabioissamu wrote:
Ultimamente uso mais MySql.
Eu tbm prefiro o MySQL, mas isso não é uma escolha minha.
Vou continuar pesquisando uma solução.
|
|
|
 |
|
|