[firebase-br] FULL JOIN

Sandro Souza escovadordebits em gmail.com
Qui Jun 11 10:57:49 -03 2009


Bom dia/tarde Haroldo.

Grande Haroldo, então só nos resta verificar se todos os índices que
poderiam agilizar essa consulta já foram criados.

Nesse caso, sugiro a criação dos seguintes índices, caso ainda não tenham
sido criados:

CREATE INDEX IX_ESTOQUE_SALDO_DIARIO ON TBESTOQUE_SALDO_DIARIO
(ESTABELECIMENTO_CODIGO, PRODUTO_CODIGO);

CREATE INDEX IX_PRODUTO_CODI_TIPO_FAMI ON TBPRODUTO (CODIGO,
TIPOPRODUTO_CODIGO, FAMILIA_CODIGO);

Só como teste, você poderia criar esses dois índices apenas para verificar
se o tempo gasto por aquela mesma consulta ficou satisfatório?

Espero ter ajudado mais que atrapalhado. :D

2009/6/11 Haroldo Dias <haroldo em delfa.com.br>

> Cara, me expressei mau, até que funciona sim, o problema que é muito
> demorado para retornar o resultado da consulta. No IB são alguns milésimos
> de segundo...
>
> "Sandro Souza" <escovadordebits em gmail.com>
> escreveu na mensagem
> news:64d5939a0906110632y4d788c31k3515773bc03a7b16 em mail.gmail.com...
> Bom dia/tarde Haroldo.
>
> Grande Haroldo, você poderia nos informar se foi retornada alguma mensagem
> de erro (e qual seria ela) ou se o resultado não foi o esperado (nenhum
> registro, por exemplo)?
>
> 2009/6/11 Haroldo Dias <haroldo em delfa.com.br>
>
> > Não tinha testado ainda, fiz agora mas não funcionou.
> >
> > "Sandro Souza" <escovadordebits em gmail.com>
> > escreveu na mensagem
> > news:64d5939a0906110528y40eb350dsddf65fdb02fb7cd1 em mail.gmail.com...
> > Bom dia/tarde Haroldo.
> >
> > Grande Haroldo, muito provavelmente você já deve ter feito isso, mas não
> > custa perguntar:
> >
> > Você já testou o seguinte código?
> >
> > SELECT
> >  A.ESTABELECIMENTO_CODIGO,
> >  A.LOCALIZACAO_CODIGO,
> >  A.PRODUTO_CODIGO,
> >  MAX(A.DATA)
> > FROM
> >  TBESTOQUE_SALDO_DIARIO A
> > WHERE
> >  (A.ESTABELECIMENTO_CODIGO = :ESTABELECIMENTO_1)AND
> >  (A.PRODUTO_CODIGO BETWEEN :PRODUTO1 AND :PRODUTO2)AND
> >  EXISTS(
> >    SELECT
> >      B.CODIGO
> >    FROM
> >      TBPRODUTO B
> >    WHERE
> >      (B.CODIGO = A.PRODUTO_CODIGO)AND
> >      (B.TIPOPRODUTO_CODIGO = :TPO_1)AND
> >      (B.FAMILIA_CODIGO = :FAMILIA_1))
> > GROUP BY
> >  A.ESTABELECIMENTO_CODIGO,
> >  A.LOCALIZACAO_CODIGO,
> >  A.PRODUTO_CODIGO
> >
> > Espero ter ajudado mais que atrapalhado. :D
> >
> > 2009/6/11 Haroldo Dias <haroldo em delfa.com.br>
> >
> > > Bom dia
> > >
> > > Estou migrado do IB 2007 para FB 2.1.2 e nas minhas sp's, eu costumo
> > > usar
> > > muito o full join, que no IB o processamento é rapidinho, mas no fb
> > > praticamente trava a máquina, logo abaixo tenho um exemplo bem simples,
> > > o
> > > que vcs sugerem que eu faça?
> > > Nesse mesmo exemplo, se eu usar LEFT JOIN ou RIGHT JOIN também trava.
> > >
> > > Select A.Estabelecimento_Codigo, A.Localizacao_Codigo,
> A.Produto_Codigo,
> > >          Max(A.Data)
> > >  From TbEstoque_Saldo_Diario A FULL JOIN TbProduto B On
> A.Produto_Codigo
> > =
> > > B.Codigo
> > >  Where   (A.Estabelecimento_Codigo = :ESTABELECIMENTO_1)
> > >        and (A.Produto_Codigo between  :PRODUTO_1 and :PRODUTO_2)
> > >        and (B.TipoProduto_Codigo = :TPO_1)
> > >        and (B.Familia_Codigo = :FAMILIA_1)
> > > Group By A.Estabelecimento_Codigo, A.Localizacao_Codigo,
> > > A.Produto_Codigo
> > >
> > > --
> > > Atenciosamente,
> > >
> > > Haroldo Dias
> > >
> > >
> > >
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista