[pgbr-geral] Paginação

2009-02-18 Por tôpico sergio santos
Pessoal,
tô estudando sobre paginação no PostgreSQL.

dei uma olhadinha na lista e achei algumas coisas interessantes. No entanto,
estou enviando este email para ver se alguém tem algum link que me mostre
bem detalhado como é o processo de paginação no PostgreSQL.

Exemplo
Se eu tenho um SQL que vai me retornar 1 registros quero exibir 50 por
páginas.

obrigado pela atenção

-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004

###

Vem aí...
SEARA 2009
21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Jota
Olá,

Qual tipo de paginação você está se referindo? A paginação interna ou
você fala paginação através do limit e offset (select campo1,campo2
from tabela limit 10) para a exibição dos registros?

[]s

2009/2/18 sergio santos sergio.serginhos...@gmail.com:
 Pessoal,
 tô estudando sobre paginação no PostgreSQL.

 dei uma olhadinha na lista e achei algumas coisas interessantes. No entanto,
 estou enviando este email para ver se alguém tem algum link que me mostre
 bem detalhado como é o processo de paginação no PostgreSQL.

 Exemplo
 Se eu tenho um SQL que vai me retornar 1 registros quero exibir 50 por
 páginas.

 obrigado pela atenção

 --
 Sérgio Antônio dos Santos
 Bacharel em Sistemas de Informação
 (31) 8573-7004

 ###

 Vem aí...
 SEARA 2009
 21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

 Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)

 ___
 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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico sergio santos
Olá Jota,
obrigado pela resposta

tô me referindo a paginação em SQL
exemplo: se minha consulta retornar 1000 registros tenho que passar um
parâmetro para o banco informando que quero exibir somente os registros
entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma dinâmica
fazendo com que a minha consulta sql faça uma paginação.

acho que é isso.


2009/2/18 Jota jota.c...@gmail.com

 Olá,

 Qual tipo de paginação você está se referindo? A paginação interna ou
 você fala paginação através do limit e offset (select campo1,campo2
 from tabela limit 10) para a exibição dos registros?

 []s

 2009/2/18 sergio santos sergio.serginhos...@gmail.com:
  Pessoal,
  tô estudando sobre paginação no PostgreSQL.
 
  dei uma olhadinha na lista e achei algumas coisas interessantes. No
 entanto,
  estou enviando este email para ver se alguém tem algum link que me mostre
  bem detalhado como é o processo de paginação no PostgreSQL.
 
  Exemplo
  Se eu tenho um SQL que vai me retornar 1 registros quero exibir 50
 por
  páginas.
 
  obrigado pela atenção
 
  --
  Sérgio Antônio dos Santos
  Bacharel em Sistemas de Informação
  (31) 8573-7004
 
  ###
 
  Vem aí...
  SEARA 2009
  21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG
 
  Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)
 
  ___
  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




-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004

###

Vem aí...
SEARA 2009
21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Osvaldo Kussama
2009/2/18 sergio santos sergio.serginhos...@gmail.com:

 tô me referindo a paginação em SQL
 exemplo: se minha consulta retornar 1000 registros tenho que passar um
 parâmetro para o banco informando que quero exibir somente os registros
 entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma dinâmica
 fazendo com que a minha consulta sql faça uma paginação.



Então, reafirmando o que Jota já havia dito, utilize as cláusulas
LIMIT e OFFSET do SELECT.
http://www.postgresql.org/docs/current/interactive/sql-select.html

Para o seu exemplo:
SELECT * FROM sua_tabela OFFSET 150 LIMIT 50 ORDER BY x;

Para variar o OFFSET ou faça isso em sua aplicação ou crie uma função
em que o valor do offset seja o parâmetro ou utilize um
PREPARE/EXECUTE:
http://www.postgresql.org/docs/current/interactive/sql-prepare.html

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico sergio santos
ok Osvaldo
certinho!

obrigado pela atenção

abraços



2009/2/18 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/2/18 sergio santos sergio.serginhos...@gmail.com:
 
  tô me referindo a paginação em SQL
  exemplo: se minha consulta retornar 1000 registros tenho que passar um
  parâmetro para o banco informando que quero exibir somente os registros
  entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma
 dinâmica
  fazendo com que a minha consulta sql faça uma paginação.
 


 Então, reafirmando o que Jota já havia dito, utilize as cláusulas
 LIMIT e OFFSET do SELECT.
 http://www.postgresql.org/docs/current/interactive/sql-select.html

 Para o seu exemplo:
 SELECT * FROM sua_tabela OFFSET 150 LIMIT 50 ORDER BY x;

 Para variar o OFFSET ou faça isso em sua aplicação ou crie uma função
 em que o valor do offset seja o parâmetro ou utilize um
 PREPARE/EXECUTE:
 http://www.postgresql.org/docs/current/interactive/sql-prepare.html

 Osvaldo
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004

###

Vem aí...
SEARA 2009
21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico José Mello Júnior
Endendo que a questão está muito mais para a ótica de um aplicativo do que
para o SGBD, mas aproveitando esta dúvida eu gostaria de perguntar o
seguinte: em um caso como esse, é mais fácil (ou dinâmico) a manipulação de
um cursor, onde o postgres se preocupa com o dimensionamento do resultado ou
utilizando LIMIT e OFFSET as consultas são de alguma forma otimizadas?

[]´s

2009/2/18 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/2/18 sergio santos sergio.serginhos...@gmail.com:
 
  tô me referindo a paginação em SQL
  exemplo: se minha consulta retornar 1000 registros tenho que passar um
  parâmetro para o banco informando que quero exibir somente os registros
  entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma
 dinâmica
  fazendo com que a minha consulta sql faça uma paginação.
 


 Então, reafirmando o que Jota já havia dito, utilize as cláusulas
 LIMIT e OFFSET do SELECT.
 http://www.postgresql.org/docs/current/interactive/sql-select.html

 Para o seu exemplo:
 SELECT * FROM sua_tabela OFFSET 150 LIMIT 50 ORDER BY x;

 Para variar o OFFSET ou faça isso em sua aplicação ou crie uma função
 em que o valor do offset seja o parâmetro ou utilize um
 PREPARE/EXECUTE:
 http://www.postgresql.org/docs/current/interactive/sql-prepare.html

 Osvaldo
  ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
José de Mello Júnior
41.9957-2007
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Jota
Olá,

Bem lembrado pelo Osvaldo, se você utilizar um cursor deve manter uma
transação em aberto para processar.

Também não sei precisar qual é mais eficiente.

[]s

2009/2/18 Osvaldo Kussama osvaldo.kuss...@gmail.com:
 2009/2/18 José Mello Júnior jose.mello.jun...@gmail.com:
 Endendo que a questão está muito mais para a ótica de um aplicativo do que
 para o SGBD, mas aproveitando esta dúvida eu gostaria de perguntar o
 seguinte: em um caso como esse, é mais fácil (ou dinâmico) a manipulação de
 um cursor, onde o postgres se preocupa com o dimensionamento do resultado ou
 utilizando LIMIT e OFFSET as consultas são de alguma forma otimizadas?



 Creio que para utilizar CURSOR neste caso você necessita manter uma
 transação aberta.

 Se isso não for um empecilho é realmente uma alternativa.

 Não sei qual das soluções (CURSOR ou OFFSET/LIMIT) é mais eficiente.

 Osvaldo
 ___
 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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico sergio santos
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?

2009/2/18 José Mello Júnior jose.mello.jun...@gmail.com

 Endendo que a questão está muito mais para a ótica de um aplicativo do que
 para o SGBD, mas aproveitando esta dúvida eu gostaria de perguntar o
 seguinte: em um caso como esse, é mais fácil (ou dinâmico) a manipulação de
 um cursor, onde o postgres se preocupa com o dimensionamento do resultado ou
 utilizando LIMIT e OFFSET as consultas são de alguma forma otimizadas?

 []´s

 2009/2/18 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/2/18 sergio santos sergio.serginhos...@gmail.com:
 
  tô me referindo a paginação em SQL
  exemplo: se minha consulta retornar 1000 registros tenho que passar um
  parâmetro para o banco informando que quero exibir somente os registros
  entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma
 dinâmica
  fazendo com que a minha consulta sql faça uma paginação.
 


 Então, reafirmando o que Jota já havia dito, utilize as cláusulas
 LIMIT e OFFSET do SELECT.
 http://www.postgresql.org/docs/current/interactive/sql-select.html

 Para o seu exemplo:
 SELECT * FROM sua_tabela OFFSET 150 LIMIT 50 ORDER BY x;

 Para variar o OFFSET ou faça isso em sua aplicação ou crie uma função
 em que o valor do offset seja o parâmetro ou utilize um
 PREPARE/EXECUTE:
 http://www.postgresql.org/docs/current/interactive/sql-prepare.html

 Osvaldo
  ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 José de Mello Júnior
 41.9957-2007

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Sérgio Antônio dos Santos
Bacharel em Sistemas de Informação
(31) 8573-7004

###

Vem aí...
SEARA 2009
21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Dickson S. Guedes
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,10);
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,2);
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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Jota
Olá,

Ótima dica do Guedes.



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,10);
 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,2);
 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




-- 
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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Nilson Chagas
Vc tá programando em que

Terminei hoje uma classe em PHP, para fazer paginação.

A unica coisa que não consegui eliminar ainda é o count(*) para saber a
quantidade total de registros.

Mas eu passo a pagina atual e a quantidade de registros por pagina, e monto
o select assim:

limit (qtd_registros_por_pagina) offset (
(pagina-1)*qtd_registros_por_pagina)


[]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 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?

 2009/2/18 José Mello Júnior jose.mello.jun...@gmail.com

 Endendo que a questão está muito mais para a ótica de um aplicativo do que
 para o SGBD, mas aproveitando esta dúvida eu gostaria de perguntar o
 seguinte: em um caso como esse, é mais fácil (ou dinâmico) a manipulação de
 um cursor, onde o postgres se preocupa com o dimensionamento do resultado ou
 utilizando LIMIT e OFFSET as consultas são de alguma forma otimizadas?

 []´s

 2009/2/18 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/2/18 sergio santos sergio.serginhos...@gmail.com:
 
  tô me referindo a paginação em SQL
  exemplo: se minha consulta retornar 1000 registros tenho que passar um
  parâmetro para o banco informando que quero exibir somente os registros
  entre 150 e 200 ou seja, serão exibidos 50 registro, isso de forma
 dinâmica
  fazendo com que a minha consulta sql faça uma paginação.
 


 Então, reafirmando o que Jota já havia dito, utilize as cláusulas
 LIMIT e OFFSET do SELECT.
 http://www.postgresql.org/docs/current/interactive/sql-select.html

 Para o seu exemplo:
 SELECT * FROM sua_tabela OFFSET 150 LIMIT 50 ORDER BY x;

 Para variar o OFFSET ou faça isso em sua aplicação ou crie uma função
 em que o valor do offset seja o parâmetro ou utilize um
 PREPARE/EXECUTE:
 http://www.postgresql.org/docs/current/interactive/sql-prepare.html

 Osvaldo
  ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 José de Mello Júnior
 41.9957-2007

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 Sérgio Antônio dos Santos
 Bacharel em Sistemas de Informação
 (31) 8573-7004

 ###

 Vem aí...
 SEARA 2009
 21 a 24 de Fevereiro - Campus da UFV - Viçosa - MG

 Alcancei misericórdia e a graça do Senhor foi imensa. (ITm 1, 13b, 14a)

 ___
 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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Nilson Chagas
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,10);
 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,2);
 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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Jota
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,10);
 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,2);
 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


Re: [pgbr-geral] Paginação

2009-02-18 Por tôpico Fabrízio de Royes Mello
Olá,

Vc pode utilizar a coluna reltuples da pg_class:

select reltuples from pg_class where relname = 'minha_tabela';

Mas tem que rodar um ANALYZE frequentemente para ter esse valor mais próximo
da realidade.


-- 
Fabrízio de Royes Mello
 Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral