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 

Sql muito demorada ou travada (RESOLVIDO POR IMEX)

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


Registrado: Segunda-Feira, 8 de Agosto de 2011
Mensagens: 97

MensagemEnviada: Ter Mai 12, 2020 6:37 pm    Assunto: Sql muito demorada ou travada (RESOLVIDO POR IMEX) Responder com Citação

Pessoal, estou fazendo uma select em firebird com firedac mas esta demorando muito pra retornar ... tipo o dia todo ...


select * from aca300 where not aca300.cod_pessoa in(select aca302.codinter from aca302)

aca300 tem uns 500.000 registros, é a tabela dos clientes

aca302 tem uns 68.000 registros, é a tabela de pedidos

quero pegar todas as pessoas que tem pedido ou todas as pessoas que não tem pedido ...

qual a maneira certa de fazer isso ?


Editado pela última vez por vilson.x em Seg Mai 18, 2020 1:47 pm, num total de 1 vez
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: Qua Mai 13, 2020 9:49 am    Assunto: Responder com Citação

Bom dia,

Acho que para esse caso seja melhor utilizar o operador Exists. Ex:

Código:
select * from aca300
where not exists (select 1 from aca302 where aca302.codinter = aca300.cod_pessoa)


Se por acaso você não criou, também seria interessante criar uma foreign key na tabela de pedidos referenciando a tabela de clientes pelo código do cliente para melhorar o desempenho e a consistência dos dados.

Espero que ajude


Editado pela última vez por imex em Dom Out 01, 2023 5:40 pm, num total de 2 vezes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vilson.x
Novato
Novato


Registrado: Segunda-Feira, 8 de Agosto de 2011
Mensagens: 97

MensagemEnviada: Seg Mai 18, 2020 1:46 pm    Assunto: Responder com Citação

Obrigado Imex.

Melhorou bastante o tempo de espera.
Demora muito ainda, tipo umas 6 horas, mas ja deu pra eu produzir os relatórios que o cliente estava precisando em uns 3 dias ...rsrs
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