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


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 :
> 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 
>>
>> 2009/2/18 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?
>>
>> 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 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 

> 2009/2/18 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?
>
> 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 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 

> 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 
>
>> 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 
>>
>>> 2009/2/18 sergio santos :
>>> >
>>> > 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 Jota
Olá,

Ótima dica do Guedes.



2009/2/18 Dickson S. Guedes :
> 2009/2/18 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?
>
> 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 Dickson S. Guedes
2009/2/18 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?

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

> 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 
>
>> 2009/2/18 sergio santos :
>> >
>> > 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 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 :
> 2009/2/18 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?
>>
>
>
> 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 Osvaldo Kussama
2009/2/18 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?
>


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


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 

> 2009/2/18 sergio santos :
> >
> > 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 sergio santos
ok Osvaldo
certinho!

obrigado pela atenção

abraços



2009/2/18 Osvaldo Kussama 

> 2009/2/18 sergio santos :
> >
> > 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 Osvaldo Kussama
2009/2/18 sergio santos :
>
> 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 Dickson S. Guedes
2009/2/18 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.

Dê uma olhada aqui e veja se te ajuda.

http://www.postgresql.org/docs/current/static/queries-limit.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 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 

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