[firebase-br] FK deixando o sistema lento

andre conrado acf.andre em gmail.com
Sex Mar 18 10:25:54 -03 2011


uma pergunta, e se o inner join se fizer necessário? por ex. mostrar
apenas os registros que existam correspondência em todas as tabelas.
eu sempre coloco parenteses para orientar o firebird qto ao plano.

ex.


select
A.coluna1
A.coluna2
A.coluna3
B.coluna1
C.coluna1
A.coluna4

from ((TABELA A

INNER JOIN TABELA B ON B.PK = A.FK)
INNER JOIN TABELA D ON D.PK = A.FK)
INNER JOIN TABELA C ON C.PK = D.FK

where

A.coluna10 = 0 AND
D.coluna10 = 000000
order by C.coluna1, A.coluna3


experimente assim para ver se resolve

Em 17/03/11, Eduardo Pelizzari de
Andrade<eduardoandrade em persoft.com.br> escreveu:
> Quando você inclui o FK o firebird deve estar calculando o plano de
> forma diferente, quando você usa o left, você força ele a utilizar o
> plano a partir da coluna A.
>
> Eduardo Pelizzari de Andrade
> Persoft Softwares Aplicativos
> Fone: 55 11 22218061
>
>
> Em 17/03/2011 18:06, Raul Geraldin escreveu:
>> Mato a pau, mais não entendi, qual foi a diferença ??
>>
>> Em 17 de março de 2011 16:28, Carlos Roberto da Silva
>> <ralhos em gmail.com>escreveu:
>>
>>
>>> Você experimentou trocar os inner join por left join ?
>>>
>>> Em Qui, 2011-03-17 às 15:58 -0300, Raul Geraldin escreveu:
>>>
>>>> Boa tarde Srs., estou com problema em meu relacionamento aonde que
>>>> quando
>>>> tiro a FK da tabela ela melhora 100% a SELECT;
>>>>
>>>> select
>>>> A.coluna1
>>>> A.coluna2
>>>> A.coluna3
>>>> B.coluna1
>>>> C.coluna1
>>>> A.coluna4
>>>>
>>>> from TABELA A
>>>>
>>>> INNER JOIN TABELA B ON B.PK = A.FK
>>>> INNER JOIN TABELA D ON D.PK = A.FK
>>>> INNER JOIN TABELA C ON C.PK = D.FK
>>>>
>>>> where
>>>>
>>>> A.coluna10 = 0 AND
>>>> D.coluna10 = 000000
>>>> order by C.coluna1, A.coluna3
>>>>
>>>> Quando excluo a FK da tabela D que esta referenciada a PK da tabela C a
>>>> cunsulta melhora 100%
>>>>
>>>> Qual seria o problema dessa FK
>>>>
>>>> ????
>>>> ______________________________________________
>>>> 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
>>
>>
>>
>> Nenhum vírus encontrado nessa mensagem recebida.
>> Verificado por AVG - www.avgbrasil.com.br
>> Versão: 9.0.894 / Banco de dados de vírus: 271.1.1/3512 - Data de
>> Lançamento: 03/17/11 04:34:00
>>
>>
> ______________________________________________
> 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
>


-- 
Um Abraço,
André Conrado.

055 21 9176-7013 - Claro
055 21 9896-5449 - Vivo (apenas mensagens SMS)




Mais detalhes sobre a lista de discussão lista