Pessoal,

Outra opção é realizar um select na tabela pg_class pelo atributo
reltuples, assim é possível extrair a quantidade de linhas da sua
tabela. Porém, é importante executar o analyze no mínimo uma vez por
dia para ter estatísticas mais precisas.

O select é: SELECT reltuples FROM pg_class WHERE relname='nome_da_tabela';

[]s

2009/2/18 Nilson Chagas <nilson.chagas.si...@gmail.com>:
> Puxa vou ler sobre.
>
> []s
> Nilson Chagas - Ubuntu User 25794
> ---
> Visite:
> http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
> http://tempodesalvacao.blogspot.com/
> http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico
>
>
>
>
> 2009/2/18 Dickson S. Guedes <lis...@guedesoft.net>
>>
>> 2009/2/18 sergio santos <sergio.serginhos...@gmail.com>:
>> > 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: gue...@guedesoft.net - skype: guediz
>> http://guedesoft.net - http://planeta.postgresql.org.br
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>



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

Responder a