GARANTIR DESCONTO

Fórum Left join muito demorada #47779

28/10/2004

0

Fiz um select com varios Left Join Porém esta demorando muito e não há atividade do hd depois de uns 15min que da o retorno quando faço com inner join ele funciona bacana mas alguns registros que quero não funciona.


Sremulador

Sremulador

Responder

Posts

29/10/2004

Fsflorencio

As consultas são idênticas com exceção dos joins?

Caso afirmativo, faça o seguinte:

Verifique quais índices estão sendo retornados no [b:6bff994485]plano [/b:6bff994485]da primeira consulta e coloque na segunda.

Acredito que ele esteja usando índices inadequados para executar a segunda consulta.


Responder

Gostei + 0

29/10/2004

Sremulador

As consultas são idênticas com exceção dos joins?


Sim, mas será que ele muda o plano só por causa disso ???


Responder

Gostei + 0

29/10/2004

Fsflorencio

Acredito que não.

Mas se o plano estiver mudando o problema está resolvido passando o plano correto, e se não estiver mudando vamos ter que encontrar outro caminho.

Não sei qual versão vc usa do Firebird ou Interbase, sei que já ví no Interbase acontecerem coisas estranhas como mudar o plano mudando pouca coisa.

No FB1.5 mudei o inner pra left e não mudou o plano.


Responder

Gostei + 0

01/11/2004

Sremulador

Eu apliquei o plano e continua uma lentidão só :(


Responder

Gostei + 0

01/11/2004

Afarias

coloque aqui a consulta e o plano para podermos saber o q pode estar havendo


T+


Responder

Gostei + 0

03/11/2004

Sremulador

Eu refiz tudo a consulta vinha de um view acho que era isso mas ficava lenta demais uns 40m para dar o retorno :(, mesmo que se tenha chave primaria e nescessário criar indices ???


Responder

Gostei + 0

03/11/2004

Afarias

|mesmo que se tenha chave primaria e nescessário criar indices ???

no(s) campo(s) da chave primária não.


bom, mas sem saber pelo menos o plano, a consulta -- e possivelmente parte do modelo, realmente é difícil dizer qualquer coisa quanto a otimização da consulta


T+


Responder

Gostei + 0

03/11/2004

Rodolpho123

Cara, tería como vc postar a sua qry aqui no fórum? Aconteceu uma vez comigo um problema parecido com este e a solução foi um simples ´()´ -´parênteses´ , bobo... Acho que com a sua qry aqui, a galera do fórum vai poder te ajudar...


Responder

Gostei + 0

04/11/2004

Sremulador

Amigos eu refiz em uma view esta pesuisa o que acontecia e que eu fiz uma view de outra e o que pareceu e que era este o problema, agradeço a disponibilidade de todos em ajudar, outra questão

quando eu faço uma pesquisa de uma view são pesquisado todos os dados e somente em uma seguinda etapa são aplicado os filtros ou isso acontesse desde a primeira ???

Valeu


Responder

Gostei + 0

11/11/2004

Marcos Conceição

Errado generalizar uma view pois retorna muito registros desnecessariamente além de ter uma terrivel sensação de lentidão.
create view view_cotacaoteste as
select * from cotacaof c,fornec f where c.fornecedor=f.codigo;


Certo
CREATE VIEW "VIEWCOTACAOF" (
  "CODIGO", 
  "EMISSAO", 
  "DATA_BASE", 
  "COD_FORN", 
  "FORNECEDOR", 
  "CONTATO"
) AS


select c.codigo,c.emissao,c.data_base,c.fornecedor,f.fornecedor,c.contato
from cotacaof c,fornec f where c.fornecedor=f.codigo;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar