Olá,

Ótima dica do Guedes.



2009/2/18 Dickson S. Guedes <[email protected]>:
> 2009/2/18 sergio santos <[email protected]>:
>> Veja bem pessoal,
>> se eu usar o limit o método RecordCount do Adodb vai me retornar o valor
>> limit e não o número de registro.
>> Sendo assim, como estou fazendo uma paginação, vai ficar difícil saber o
>> número de páginas vou ter
>>
>> o que vocês acham?
>
> Ola Sergio,
>
> Você precisa saber *exatamente* quantas paginas darão? Uma estimativa
> (assim como o Google faz) já não ajudaria?
>
> Dependendo do tamanho desta sua tabela você pode aproveitar as
> estatísticas do banco, ao invés de fazer um count(*) para saber o
> total de registros e paginar.
>
> Faça um teste de exemplo em uma *base de teste*:
>
> CREATE TABLE temp (a int);
> INSERT INTO temp SELECT generate_series(1,100000);
> SELECT pg_stat_get_live_tuples(oid) from pg_class where relname = 'temp';
> ANALYZE temp;
> SELECT pg_stat_get_live_tuples(oid) from pg_class where relname = 'temp';
> INSERT INTO temp SELECT generate_series(1,20000);
> SELECT count(*) from temp;
> ANALYZE temp;
> SELECT pg_stat_get_live_tuples(oid) from pg_class where relname = 'temp';
> SELECT pg_stat_get_live_tuples(oid) from pg_class where relname = 'temp';
> SELECT pg_stat_get_live_tuples(oid) from pg_class where relname = 'temp';
> SELECT count(*) from temp;
> DROP TABLE temp;
>
> Veja como os resultados podem variar no caso do count a medida que o
> volume de dados vai crescendo.
>
> Obviamente o script acima não contem a solução pronta, é apenas uma
> demonstração de que é possível trabalhar com estimativas ao invés de
> exatos, em determinadas situações.
>
> Para se aprofundar, leia:
>
> http://www.postgresql.org/docs/current/static/monitoring-stats.html
>
>
> Dickson S. Guedes
> -
> mail/xmpp: [email protected] - skype: guediz
> http://guedesoft.net - http://planeta.postgresql.org.br
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
João Paulo
www.dextra.com.br/postgres
PostgreSQL
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a