ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Agilizar Query

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
eremita
Aprendiz
Aprendiz


Registrado: Domingo, 7 de Janeiro de 2007
Mensagens: 228

MensagemEnviada: Sex Nov 27, 2015 2:28 pm    Assunto: Agilizar Query Responder com Citação

Olá, a query abaixo traz o que preciso porém todo processo esta demorando um pouco. Alguma dica de como agiliza-lá ?

Código:
select
 mov.ID,
 tit.CONTAS,
 LPAD(cta.BANCOS,3,' ') || ' - ' || LPAD(cta.NROAGE,4,' ') || ' - ' || cta.NROCTA as CTABCO,
 mov.DATMOV,
 mov.OCOCOD,
 mov.OCODAT,
 mov.OCOTIP,
 mov.ACEITE,
 mov.TJUROS,
 mov.PPROTE,
 mov.VALTAR,
 mov.VALODB,
 mov.VALIOF,
 mov.VALABA,
 mov.DATABA,
 mov.VALDES,
 mov.DATDES,
 mov.VALMUL,
 mov.DATMUL,
 mov.VALJUR,
 mov.VALOCR,
 mov.DATCRE,
 mov.EMPRES,
 mov.COBTIT,
 mov.COBLOG,
 mov.OCODEL,
 (LPAD(log.ARQNRO,6,' ') ||'-' || log.ARQARQ) as ARQNRO,
 log.ARQDAT,
 log.ARQNOM,
 cta.BANCOS
from
 COBMOV mov
left join
 COBLOG log
 on (mov.COBLOG = log.ID)
left join
 COBTIT tit
 on (mov.COBTIT = tit.ID)
left join
 DETOPE det
 on (tit.DETOPE = det.ID)
left join
 CONTAS cta
 on (tit.CONTAS = cta.ID)
where
 (tit.ID_1 is Null)
and
 (tit.DETOPE = :p1)
order by
 mov.OCODAT desc,
 mov.ID desc


A principal função dela é retornar todo movimento de um título com base no arquivo de retorno do banco.

*D7 + FB 2.5
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Nov 27, 2015 3:16 pm    Assunto: Responder com Citação

Boa tarde,

Não sei se vai fazer diferença, mas como os filtros existentes na query utilizam os campos da tabela COBTIT, vou sugerir um teste alterando a ordem das tabelas na query para deixar a tabela COBTIT depois do From.

Espero que ajude.

_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
eremita
Aprendiz
Aprendiz


Registrado: Domingo, 7 de Janeiro de 2007
Mensagens: 228

MensagemEnviada: Sex Nov 27, 2015 3:59 pm    Assunto: Responder com Citação

Até pensei nesta possibilidade mas não consegui montar, você teria alguma sugestão ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Nov 27, 2015 4:28 pm    Assunto: Responder com Citação

Experimente dessa forma:

Código:
from
 COBTIT tit
left join
 COBMOV mov
 on (mov.COBTIT = tit.ID)
left join
 COBLOG log
 on (mov.COBLOG = log.ID)
left join
 CONTAS cta
 on (tit.CONTAS = cta.ID)


Pelo que vi agora, acredito que a tabela DETOPE não é necessária nessa query, por isso removi a mesma do trecho acima.

Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB