Scientist 2 Denunciar post Postado Novembro 9, 2013 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
Roberto Fagundes 40 Denunciar post Postado Novembro 9, 2013 Ok, mas qual o banco de dados você esta utilizando? Você usa asterisco em suas consultas? Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 11, 2013 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
Chrnos 30 Denunciar post Postado Novembro 12, 2013 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