[FUGSPBR] OFF-Topic Postgres
Israel Cordeiro
israelistas em yahoo.com.br
Ter Fev 25 10:44:25 BRT 2003
Leonardo,
creio que o problema pode estar na consulta SQL formada .Observe :
select
cod, nome,emai /* cod de qual tabela ? a ou b ? */
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;
Tente assim :
select
a.cod,a.nome,a.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;
OBS. Isto supondo que nome e emai fazem parte da tabela usuarios .
O que ocorre é que o PostGreSQL não consegue saber de quem é a tabela e fica
tentando "advinhar" o que deve ser feito , tenta isto que deve funcionar .
Seya,
Israel Cordeiro da Fonseca
http://www.metanoianet.com.br
----------------------------------------------------------------------------
-
Free your mind ... Free your software ... Free your hardware ... = FreeBSD
----------------------------------------------------------------------------
-
----- Original Message -----
From: "Leonardo B. Cuquejo" <leo em magicwebdesign.com.br>
To: "Grupo Brasileiro de Usuarios FreeBSD" <fugspbr em fugspbr.org>
Sent: Tuesday, February 25, 2003 10:21 AM
Subject: [FUGSPBR] OFF-Topic Postgres
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/
_______________________________________________________________________
Busca Yahoo!
O serviço de busca mais completo da Internet. O que você pensar o Yahoo! encontra.
http://br.busca.yahoo.com/
_______________________________________________________________
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