[FUGSPBR] OFF-Topic Postgres

André Luiz de Souza andresou em alvorada.com.br
Ter Fev 25 11:16:02 BRT 2003


Acho que sua consulta funcionaria melhor assim:
select
    cod,nome,emai from usuarios as a, cli_cat as b
    where (b.cod_cat in (2, 16, 20, 17) and a.cod=b.cod_cli and 
a.ativo='True')
    group by cod,nome,emai;

Tenta assim pra ver se dá certo!

Leonardo B. Cuquejo wrote:

>Desculpem por mandar esse off-topic pra lista, mas acho que alguem pode
>saber a solucao e me ajudar.
>Uso postgres 7.3.
>Tenho 3 tabelas uma de usuarios (com +ou-10000 registros) outra de
>categorias e outra de relacao entre as duas, quando faco uma consulta
>assim:
>select
>    cod,nome,emai from usuarios as a, cli_cat as b
>    where (b.cod_cat=2 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=16 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=20 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=17 and a.cod=b.cod_cli and a.ativo='True')
>    group by cod,nome,emai;
>
>ele me retorna quase que instantaneamente, notem que tem 4 consultas.
>
>agora quando eu coloco mais uma consulta  ele simplesmente demora demora
>e nao me retorna.
>se eu olhar quanto o postgres esta processando ele esta em 99% do
>processador, e nao me retorna nada.
>olhe um exemplo abaixo.
>
>select
>    cod,nome,emai from usuarios as a, cli_cat as b
>    where (b.cod_cat=2 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=16 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=20 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=17 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=22 and a.cod=b.cod_cli and a.ativo='True')
>    group by cod,nome,emai;
>
>aqui tem 5 consultas... e mesmo que eu coloque um codigo repetido tipo
>assim:
>
>select
>    cod,nome,emai from usuarios as a, cli_cat as b
>    where (b.cod_cat=2 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=16 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=20 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=20 and a.cod=b.cod_cli and a.ativo='True') or
>    (b.cod_cat=17 and a.cod=b.cod_cli and a.ativo='True')
>    group by cod,nome,emai;
>
>ele tb trava e etc... Isso seria um bug do postgres? achei que poderia
>ser um bug e atualizer o meu postgres 7.2 pro 7.3 e continua dando o
>mesmo problema.
>
>O Estranho que eh so quando tem 5 consultas...
>quando eh 4 consultas eh quase que instantaneo, mesmo que seja as 4
>maiores consultas...
>
>Alguem tem alguma dica?
>Grato,
>Leonardo B. Cuquejo
>
>
>_______________________________________________________________
>Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
>Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
>
>
>  
>


_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd