none
Performance POO RRS feed

  • Pergunta

  • Pessoal,

    Criamos nossa estrutura totalmente orientada a objetos, com grande reaproveitamento dos objetos já codificados, tudo funciona muito bem.

    Agora estamos com um grande problema todo os nossos cadastros básicos já estão devidamente codificados em classes, mais sentimos uma grande perda de performance quando temos um acesso de quantidade grande de dados, exemplo:

     

    Na Classe Cliente temos uma propriedade Logradouro que é do tipo Logradouro, no Logradouro temos bairro que tem cidade que tem estado que tem pais

     

    sendo assim eu posso escrever o seguinte codigo:

    Console.write(Cliente.Logradouro,Bairro.Estado.Pais.Nome);

     

    Muito bacana, mais se pensarmos bem, quanto meu metodo Get() form executado, e esse metodo retornar minha Lista de Clientes List<Cliente>, ele vai fazer 5 selects para cada registro, logo se tenho 1000 clientes 5000 consultas, é bem verdade que sempre serão consultas baseadas na PK da tabela, mais eu tenho todo um processo de encapsulamento de objetos em cascata.

     

    Um consulta que sem orientação a objetos retornava em 1seg, com a cascata de objetos demora 10seg. que para o usuario final é um tempo inaceitavel.

     

     

     


    Ricardo Jesus
    quarta-feira, 2 de junho de 2010 01:22

Respostas

  • Olá, eu acho que a perda de desempenho é devido à forma como você está usando as suas ligações, ou para retornar uma lista deve abrir a conexão de uma vez, e usar essa conexão aberta para carregar outros objetos. para o melhor desempenho usar a classe DataReader ....

    Você poderia mostrar o seu código de carregamento de dados para melhor ajudar.
    salu2


    Leo Lequini
    quarta-feira, 2 de junho de 2010 18:31