GARANTIR DESCONTO

Fórum Otimizar consulta SQL #59596

26/03/2008

0

Galera,

Alguém poderia me ajudar como otimizar a seguinte consulta... Desde já agradeço.

Select Distinct
    ReciboAX.STR_Campo1,
    ReciboAX.STR_NumeroReciboCredito,
    ReciboAX.DT_Emissao,
    ReciboAX.DBL_Campo4,
    CCLancto.STR_CodigoTipoCliente,
    CCLancto.STR_CodigoCliente,
    CCLancto.STR_CodigoTipoFilial,
    CCLancto.STR_CodigoFilial,
    Cliente.STR_NomeCadastro As STR_NomeCliente,
    Filial.STR_NomeCadastro As STR_NomeFilial,
    ContCorr.STR_NomeContaCorrente,
    ProcLanc.DT_Data As DT_DataLancamento
From
    ReciboAX
    Left Join CCLancto on (ReciboAX.STR_Campo1 = CCLancto.STR_NumeroProcesso And
                           ReciboAX.STR_CodigoHistProcesso = CCLancto.STR_CodigoHistProcesso)
    Left Join CCorrent on (CCLancto.LI_SeqContaCorrente = CCorrent.LI_SeqContaCorrente)
    Left Join ContCorr on (CCorrent.STR_CodigoBancCont      = ContCorr.STR_CodigoBancCont And
                           CCorrent.STR_CodigoAgencia       = ContCorr.STR_CodigoAgencia And
                           CCorrent.STR_CodigoContaCorrente = ContCorr.STR_CodigoContaCorrente )
    Left Join Cadastro Cliente on ((CCLancto.STR_CodigoTipoCliente=Cliente.STR_CodigoTipoCadastro and CCLancto.STR_CodigoCliente=Cliente.STR_CodigoCadastro))
    Left Join Cadastro Filial  on ((CCLancto.STR_CodigoTipoFilial=Filial.STR_CodigoTipoCadastro and CCLancto.STR_CodigoFilial=Filial.STR_CodigoCadastro))
Left Join ProcLanc On ( ProcLanc.LI_SeqContaCorrente = CCorrent.LI_SeqContaCorrente)
Where ( CCLancto.STR_CodigoTipoCliente Is Not Null And CCLancto.STR_CodigoCliente Is Not Null )
And ( Cast( ProcLanc.DT_Data As Date ) Between :DataIni And :DataFim )
And ( ProcLanc.DT_Data  Is Not Null )
ORDER BY ReciboAX.STR_NumeroReciboCredito



Rvsantos

Rvsantos

Responder

Posts

26/03/2008

Emerson Nascimento

o que vc quer otimizar? a performance ou a instrução?


Responder

Gostei + 0

27/03/2008

Rvsantos

o que vc quer otimizar? a performance ou a instrução?


Olá...

Gostaria de otimizar a performance...

[]s


Responder

Gostei + 0

05/04/2008

Emerson Nascimento

Select Distinct
    ReciboAX.STR_Campo1,
    ReciboAX.STR_NumeroReciboCredito,
    ReciboAX.DT_Emissao,
    ReciboAX.DBL_Campo4,
    CCLancto.STR_CodigoTipoCliente,
    CCLancto.STR_CodigoCliente,
    CCLancto.STR_CodigoTipoFilial,
    CCLancto.STR_CodigoFilial,
    Cliente.STR_NomeCadastro As STR_NomeCliente,
    Filial.STR_NomeCadastro As STR_NomeFilial,
    ContCorr.STR_NomeContaCorrente,
    ProcLanc.DT_Data As DT_DataLancamento
From
    ReciboAX
Left Join
    CCLancto on (CCLancto.STR_NumeroProcesso = ReciboAX.STR_Campo1 And
                 CCLancto.STR_CodigoHistProcesso = ReciboAX.STR_CodigoHistProcesso)
Left Join
    CCorrent on (CCorrent.LI_SeqContaCorrente = CCLancto.LI_SeqContaCorrente)
Left Join
    ContCorr on (ContCorr.STR_CodigoBancCont = CCorrent.STR_CodigoBancCont And
                 ContCorr.STR_CodigoAgencia = CCorrent.STR_CodigoAgencia And
                 ContCorr.STR_CodigoContaCorrente = CCorrent.STR_CodigoContaCorrente)
Inner Join
    Cadastro Cliente on (Cliente.STR_CodigoTipoCadastro = CCLancto.STR_CodigoTipoCliente and
                         Cliente.STR_CodigoCadastro = CCLancto.STR_CodigoCliente)
Left Join
    Cadastro Filial  on (Filial.STR_CodigoTipoCadastro = CCLancto.STR_CodigoTipoFilial and
                         Filial.STR_CodigoCadastro = CCLancto.STR_CodigoFilial)
Left Join
    ProcLanc On (ProcLanc.LI_SeqContaCorrente = CCorrent.LI_SeqContaCorrente)
Where
    Cast( ProcLanc.DT_Data As Date ) Between :DataIni And :DataFim
Order by
    ReciboAX.STR_NumeroReciboCredito



eu troquei o [b:257e633aa7]left join[/b:257e633aa7] por [b:257e633aa7]inner join[/b:257e633aa7] no relacionamento da tabela [i:257e633aa7]cliente[/i:257e633aa7].
outra coisa: se já não houver, você precisará criar índices nas tabelas envolvidas.
CCLancto -> STR_NumeroProcesso, STR_CodigoHistProcesso
CCorrent -> LI_SeqCorrente
ContCorr -> STR_CodigoBancCont, STR_CodigoAgencia, STR_CodigoContaCorrente
Cadastro -> STR_CodigoTipoCadastro, STR_CodigoCadastro
ProcLanc -> LI_SeqContaCorrente


Responder

Gostei + 0

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

Aceitar