Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-06-22 Por tôpico Eduardo Amaral
Amanha mesmo, estarei testando... muito obrigado Mozart Em 21 de junho de 2010 22:52, Mozart Hasse escreveu: > Olá Eduardo, > > > Depois de ler a técnica tentei de todo jeito mas não fui muito feliz... > > Vamos mudar o placar então. > Não conheço a regra de negócio dessas tabelas, mas pelo qu

[pgbr-geral] Otimizar consulta com LEFT JOIN

2010-06-21 Por tôpico Mozart Hasse
Olá Eduardo, > Depois de ler a técnica tentei de todo jeito mas não fui muito feliz... Vamos mudar o placar então. Não conheço a regra de negócio dessas tabelas, mas pelo que entendi são duas subconsultas independentes, sendo assim, vejamos: * o segundo UNION não pode ter os INNER que você c

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-06-21 Por tôpico Mozart Hasse
-geral/attachments/20100617/ff4727f2/attachment-0001.htm -- Message: 3 Date: Mon, 21 Jun 2010 15:45:13 -0300 From: Eduardo Amaral Subject: Re: [pgbr-geral] Otimizar consulta com LEFT JOIN To: Comunidade PostgreSQL Brasileira Message-ID: Content-Type: text/plain; char

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-06-21 Por tôpico Eduardo Amaral
Mozar, Depois de ler a técnica tentei de todo jeito mas não fui muito feliz... A 1 Parte com Inner, ficou muito RAPIDO Acho que fiz errado , na segunda parte pq piorou o tempo da query anterior essa é a query (ja tomei de uns 8x0 dela) ---

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Mozart Hasse
Oi Priscila, > Subject: Re: [pgbr-geral] Otimizar consulta com LEFT JOIN > To: Comunidade PostgreSQL Brasileira > Porém, se eu executasse desse jeito que está no exemplo, ele não > reclamaria > que está faltando entrada para a tabela ps e pf no segundo select? E se eu > coloca

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Priscila Cardoso Gonçalves
Olá Mozart, estava tentando reescrever uma consulta agora a pouco, tentando aplicar essas sugestões. Porém, se eu executasse desse jeito que está no exemplo, ele não reclamaria que está faltando entrada para a tabela ps e pf no segundo select? E se eu colocasse os inners para essas tabelas não pre

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Marcel Araujo
ahahahahaha, tô em estado de graça! Meu amigo, consegui reduzir uma consulta de faturamento de 67 segundos para apenas 10 segundos e podendo melhor ainda mais. -- Abraços.. Marcel Araujo System Analyst Developer Java/PHP/RIA Linux User #490101 http://br.linkedin.com/in/marcelaraujo http://w

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Marcel Araujo
Aham, muito obrigado pela explicação. Irei testar daqui a pouco e darei retorno. -- Abraços.. Marcel Araujo System Analyst Developer Java/PHP/RIA Linux User #490101 http://br.linkedin.com/in/marcelaraujo http://www.twitter.com/marcelaraujo http://marcelaraujo.tumblr.com/ http://www.marcelara

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-20 Por tôpico Mozart Hasse
Oi Marcel, > Não ficou muito claro para mim a reescrita de uma consulta. > Como eu faria numa consulta como esta abaixo??? *Assumindo* que turmas_ofertas_professores tem o campo turma_oferta_id não nulo *e* que *todo* o professor tem uma referência à tabela pessoas, ficaria: SELECT tof.id AS tur

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Marcel Araujo
Não ficou muito claro para mim a reescrita de uma consulta. Como eu faria numa consulta como esta abaixo??? *CREATE OR REPLACE VIEW vw_ch_professores_turmas_ofertas AS SELECT tof.id AS turma_oferta_id, tpo.id AS turma_professor_id, pf.id AS professor_id, pf.cod_prof, ps.id, ps.nome_pessoa, sum(tp

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Prof. Benedito A. Cruz
Muito boa explicação, obrigado! Em 19/05/2010 19:55, Mozart Hasse escreveu: > Benedito, > > >>Não sei se minha pergunta é boba, mas: >> Porque fazer desse jeito é mais eficiente do que fazer um LEFT JOIN? >> > A pergunta não é boba não, na realidade a explicação não é nada trivia

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Mozart Hasse
Benedito, > Não sei se minha pergunta é boba, mas: >Porque fazer desse jeito é mais eficiente do que fazer um LEFT JOIN? A pergunta não é boba não, na realidade a explicação não é nada trivial. A resposta mais simples e curta que posso dar é: esse jeito (UNION ALL + INNER + NOT EXISTS) é m

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Fábio Telles Rodriguez
> > > Aplique a idéia de usar UNION ALL. Isso funciona em qualquer servidor SQL e > nunca vi piorar o desempenho da consulta. O que faço é o seguinte: para > CADA > LEF OUTER JOIN da sua consulta, substitua por duas cópias da mesma query > separadas por UNION ALL (não union, tem de ser UNION ALL),

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico vinicius perroni
Sim amigo por exemplo a query que estava tentando melhorar demorava uns 25segundos com left join passando a usar a técnica do Mozart ela passou a executar em no max 3segundos. Abaixo segue a query modificada. SELECT codigofab, descricao, prazo, quantidade,

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Benedito A. Cruz
ERE NOT EXISTS (SELECT 1 FROM b WHERE a.id= b.id) > > UNION all > > -- com B com C > SELECT "campoA", "campoB", "campoC" as c FROM a > INNER JOIN b ON (a.id= b.id) > INNER JOIN c ON (a.id= c.id) > > > Mozart > > -- Original Message

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-19 Por tôpico Mozart Hasse
ON (a.id= c.id) WHERE NOT EXISTS (SELECT 1 FROM b WHERE a.id= b.id) UNION all -- com B com C SELECT "campoA", "campoB", "campoC" as c FROM a INNER JOIN b ON (a.id= b.id) INNER JOIN c ON (a.id= c.id) Mozart -- Original Message -- > From: mateusgra > S

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-18 Por tôpico mateusgra
null as b, campoC FROM a WHERE NOT EXISTS (SELECT 1 FROM a > WHERE a.id= c.id) > > Ocorreu duas linhas por regitros quando tem registro so em A e C ou A e > B. > > > Mozart Hasse wrote: >> >> Olá Vinicius, >> >>> From: vinicius perroni >>

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-18 Por tôpico mateusgra
) UNION ALL SELECT campoA, null as b, campoC FROM a WHERE NOT EXISTS (SELECT 1 FROM a WHERE a.id= c.id) Ocorreu duas linhas por regitros quando tem registro so em A e C ou A e B. Mozart Hasse wrote: > > Olá Vinicius, > >> From: vinicius perroni >> Subject: [pgbr-geral] Otimi

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-18 Por tôpico vinicius perroni
Obrigado pelas dicas tanto a do Marcos que faz pensar que quando iniciar um projeto novo já planejar essas functions e a solução do Mozart que implementei e deu certo a query demorava 25segundos caiu para 2 3 segundos. vlw... Att Vinicius Perroni ___ pgb

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-17 Por tôpico Mozart Hasse
Olá Vinicius, > From: vinicius perroni > Subject: [pgbr-geral] Otimizar consulta com LEFT JOIN > Estou com um velho problema uma consulta minha utiliza muitos LEFT > JOINS tornandoa lenta demais. > A consulta é mais ou menos assim tenho uma tabela de orçamentos, uma > de o

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-17 Por tôpico vinicius perroni
Obrigado é um boa alternativa esta sua. (Só não sei se meu chefe vai deixar eu sair criando funções na base de dados hehehe mas isso é outro problema) Obrigado pela ajuda. Em 17 de maio de 2010 11:27, Marcos - GMail escreveu: > Tu pode fazer o seguinte: Se eu entendi bem, tu precisa de informaçõ

Re: [pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-17 Por tôpico Marcos - GMail
Tu pode fazer o seguinte: Se eu entendi bem, tu precisa de informações de diversas tabelas e o uso do left join. Vou te dar um exemplo pratico do que eu faço: Eu tenho uma tabela Orcamento(Mestre) OrcamentoItem(Detalhe) Nas tabelas acima eu uso o left join, entao: Select * >From "Orcamento" left

[pgbr-geral] Otimizar consulta com LEFT JOIN

2010-05-17 Por tôpico vinicius perroni
Bom dia a todos. Estou com um velho problema uma consulta minha utiliza muitos LEFT JOINS tornandoa lenta demais. A consulta é mais ou menos assim tenho uma tabela de orçamentos, uma de ordens de compras e outra de Notas Fiscas, três tabelas sendo o unico registro que certamente existe é o orçame

Re: [pgbr-geral] Otimizar Consulta

2008-05-14 Por tôpico Leandro DUTRA
2008/5/14 ..:: Rodrigo (-_-) Machado ::.. <[EMAIL PROTECTED]>: > > eu encontrei em uma mensagem da lista um colega indicando para colocar o > nome da tabela em um select tabela.campo from xxx para otimizar a consulta, Leia a seqüência da discussão, verás que é altamente improvável. Mas é bom para

[pgbr-geral] Otimizar Consulta

2008-05-13 Por tôpico ..:: Rodrigo (-_-) Machado ::..
Boa noite colegas, eu encontrei em uma mensagem da lista um colega indicando para colocar o nome da tabela em um select tabela.campo from xxx para otimizar a consulta, Gostaria da confirmação dos colegas, em uma consulta onde envolve varias tabelas, fica mais rapido colocar o nome da tabela na f

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico ..:: Rodrigo (-_-) Machado ::..
> > Voce poderia rodar EXPLAIN ANALYZE de ambas e colar aqui para nós por > favor? EXPLAIN ANALYZE select c_cpd, sum(n_cant) from ( select c_cpd, sum(n_cant) as n_cant from movie where c_sucursal>='001' and c_sucursal<='001' group by c_cpd union all select c_cpd, sum(n

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico Dickson Guedes
..:: Rodrigo (-_-) Machado ::.. escreveu: > Veja o explain: 14677.89 contra 6785. Rodrigo, Voce poderia rodar EXPLAIN ANALYZE de ambas e colar aqui para nós por favor? -- []s Dickson S. Guedes - Projeto Colmeia - Curitiba - PR (41) 3254-7130 ramal: 27 http://

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico Osvaldo Rosario Kussama
Evandro Ricardo Silvestre escreveu: > ..:: Rodrigo (-_-) Machado ::.. wrote: >> Bom dia pessoal, nao sei se posso postar este tipo de topico na lista, >> mas ca estou eu. >> Sou bem iniciando no mundo SQL, e preciso otimizar esta consulta. >> >> select c_cpd, sum(n_cant) from (

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico ..:: Rodrigo (-_-) Machado ::..
> > Não sei se entendi direito, mas ai vai uma dica: > > select movie.c_cpd, sum(movie.n_cant + (movis.n_cant)*-1) as n_cant > from movie >JOIN movis ON (movis.c_cpd = movie.c_cpd) > where movie.c_sucursal>='001' and movie.c_sucursal<='001' > group by movie.c_cpd > > Ape

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico Evandro Ricardo Silvestre
..:: Rodrigo (-_-) Machado ::.. wrote: > Bom dia pessoal, nao sei se posso postar este tipo de topico na lista, > mas ca estou eu. > Sou bem iniciando no mundo SQL, e preciso otimizar esta consulta. > > select c_cpd, sum(n_cant) from ( > select c_cpd, sum(n_cant) as n_cant

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico ..:: Rodrigo (-_-) Machado ::..
Obrigado Luiz, na verdade, preciso where c_sucursal>='001' and where c_sucursal<='001' pois esses valores sao passados por parametros, e alguns casos podem ser alterados. Entao, vou criar o indice. Obrigado pela dica. -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machad

Re: [pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico Luiz Rafael Culik Guimaraes
group by c_cpd ) as movi group by c_cpd order by c_cpd e tenha um indice pelo campo c_sucursal []s Luiz - Original Message - From: ..:: Rodrigo (-_-) Machado ::.. To: Comunidade PostgreSQL Brasileira Sent: Thursday, April 10, 2008 11:47 AM Subject: [pgbr-geral] Otimizar Consulta Bom

[pgbr-geral] Otimizar Consulta

2008-04-10 Por tôpico ..:: Rodrigo (-_-) Machado ::..
Bom dia pessoal, nao sei se posso postar este tipo de topico na lista, mas ca estou eu. Sou bem iniciando no mundo SQL, e preciso otimizar esta consulta. select c_cpd, sum(n_cant) from ( select c_cpd, sum(n_cant) as n_cant from movie where c_sucursal>='001' and c_sucursal<='001'