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

Responder a