Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Scientist

Melhorando performance de pesquisa no DELPHI

Recommended Posts

Estou utilizando um relacionamento Master-Detail de Vendas (Master) com Serviços e Pagamentos (tabelas Details), utilizo o TClientDataSet configurado para o commandType = ctQuery, tenho aproximadamente 20K de Vendas, sendo que cada Venda tem vários produtos e pagamentos.

 

Trabalho da seguinte forma: Eu tenho Querys prontas parametrizadas e apenas utilizo elas quando necessário, ex:

 

 

 

  clientDataSet.close; 
  clientDataSet.commandText := FIND_BY_COD_VENDA;
  clientDataSet.Params.paramByName('cod_venda').AsInteger := 134; 
  clientDataSet.open;

 

Ocorre que como estou trabalhando com Master-Detail, além de carregar os dados da VEnda, ele carrega os dados dos Serviços e Pagamentos, deixando a consulta um pouco mais lenta do que eu esperava. Gostaria de saber se tem como dizer de alguma forma: "Não carregue os details, apenas quando eu for editar um registro eu carrego os details".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não utilizo o wildcard (*) em minhas consultas, pois preciso explicitamente dizer o nome das tabelas com join e cast. O banco que utilizo é o "Firebird", mas mudar de banco na atual não é uma opção, se não, já tinha mudado para Postgresql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está o código da sua pesquisa? Ela abre só o dataset principal e ele por conta abre os demais? Que BD usa? Ele está corretamente indexado com os campos que utiliza na sua pesquisa? As vezes o problema nem é o Delphi, mas a falta de índices ou o uso incorreto dos índices do BD que torna a resposta mais lenta, sem contar que a tendência é que suas consultas em uma base que cresce exponencialmente com o tempo passem a crescer também... há casos inclusive em que se criar views para pesquisar os dados pode ajudar a melhorar a performance... cada caso é um caso....

 

Já tentou levar seu caso para a área referente ao seu BD para que os DBA's do fórum possam lhe auxiliar a analisar a estrutura da sua base de dados/selects de pesquisa e darem dicas pra melhorar a performance?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.