none
Duvida sobre xml RRS feed

  • Pergunta

  • oi tudo bom? eu estou encarando um serio problema de performance no meu sistema eu ja havia perguntado aqui no forum se eu poderia utilizar web service e umas das resposta me fez desistir da ideia. porem mesmo assim eu tenho que melhorar a performance ou vão melhorar o programador la no trabalho no caso eu xD

    Bom ai eu pensei eu pensei em utilizar xml para guardar a informação para consulta ao invez de consultar no banco, tenho varias informações porque a sessão de 1 usuario ja fica com 150mb, e se as querys que eu faço no banco são muito pesadas, mesmo usando store procedure e codigos otimizados para o banco.

    Como eu poderia fazer isso? a ideia que eu tive pode ser errada e é por isso que vim pedir ajuda. se a ideia estiver certa quero um caminho para seguir e se estiver errado queria uama ideia melhor.

    A ideia que eu tive é assim. ficar um serviço com todas as informações que eu preciso e quando meu cliente se logar no sistema eu verifico se a informação que ele necessita está guardada no xml do servidor se não estiver ele busca no serviço e utiliza porem essa informação tem que ser utilizado por todos os usuarios. quando eu verifico se ele possui a informação se ele possuir eu verifico se a informação é atualizada se não for eu atualizo. onde a informação que normalmente são atualizadas são double. porque as outras são raramente alteradas.

    socorro preciso de ajuda. todas as ideias são bem vindas

    sábado, 18 de setembro de 2010 18:48

Respostas

  • Iceoz,

    Acho que se você implementar este seu "cache" baseado em XML, você irá continuar com o mesmo problema de performance. O ideal para você fazer um cache, seria utilizar classes .NET "puras" para isto. Outra coisa, o .net tem um Engine de cache chamado Velocity, sugiro a você dar uma estudada nele para ver se te serve:

    http://blogs.msdn.com/b/velocity/

    At.,


    Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)
    segunda-feira, 20 de setembro de 2010 12:58
  • Acho que você deveria tentar otimizar utilizando uma lib de cache, como por exemplo a NCache:

    http://www.alachisoft.com/ncache/ncache_express.html

    A versão express é free, e você pode utilizá-la tanto em asp.net quanto em winClient.

    A tarefa não é das mais simples, pois você vai ter que pensar muito para bolar a sua estratégia de caching para que ela seja eficiente. Mas pelo menos você não vai ter que se preocupar em COMO implementar o cache, mas sim ONDE implementá-lo.

    Performance não é sempre um problema dos mais triviais, e muitas das vezes você é forçado a rever toda a sua aplicação.

    A Idéia do seu serviço parece ser interessante, mas lhe recomendo um pouco de cautela. Ao invés de fazer o cache em XML, talvez seja melhor você pensar em uma estratégia de carga de dados por demanda, diminuindo tanto a carga no banco de dados quanto a saturação da sua LAN.

     

    Boa Sorte


    ...
    sexta-feira, 22 de outubro de 2010 14:53

Todas as Respostas

  • Valida:

     

    A ideia que eu tive é assim. ficar um serviço com todas as informações que eu preciso e quando meu cliente se logar no sistema eu verifico se a informação que ele necessita está guardada no xml do servidor se não estiver ele busca no serviço e utiliza porem essa informação tem que ser utilizado por todos os usuarios. quando eu verifico se ele possui a informação se ele possuir eu verifico se a informação é atualizada se não for eu atualizo. onde a informação que normalmente são atualizadas são double. porque as outras são raramente alteradas.

    socorro preciso de ajuda. todas as ideias são bem vindas



    Just Be Humble Malange!
    domingo, 19 de setembro de 2010 13:59
    Moderador
  • Iceoz,

    Acho que se você implementar este seu "cache" baseado em XML, você irá continuar com o mesmo problema de performance. O ideal para você fazer um cache, seria utilizar classes .NET "puras" para isto. Outra coisa, o .net tem um Engine de cache chamado Velocity, sugiro a você dar uma estudada nele para ver se te serve:

    http://blogs.msdn.com/b/velocity/

    At.,


    Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)
    segunda-feira, 20 de setembro de 2010 12:58
  • Hun vou dar uma olhada. eu tive essa ideia por que dai eu troco sql por linq to xml.

    no meu caso como faço muitos callbacks e esses tem pouca diferença de dados apenas diferenças de filtros pensei em fazer assim. uma vez que se eu guardar na sessão as informações, ela fica gigantesca e o servidor aos poucos vai ficando lento. se eu deixar ir para o sql o banco fica lento pois os sql são pesados. porem em xml os valores ja estariam pre-filtrados entende meu dilema?

    segunda-feira, 20 de setembro de 2010 15:40
  • Acho que você deveria tentar otimizar utilizando uma lib de cache, como por exemplo a NCache:

    http://www.alachisoft.com/ncache/ncache_express.html

    A versão express é free, e você pode utilizá-la tanto em asp.net quanto em winClient.

    A tarefa não é das mais simples, pois você vai ter que pensar muito para bolar a sua estratégia de caching para que ela seja eficiente. Mas pelo menos você não vai ter que se preocupar em COMO implementar o cache, mas sim ONDE implementá-lo.

    Performance não é sempre um problema dos mais triviais, e muitas das vezes você é forçado a rever toda a sua aplicação.

    A Idéia do seu serviço parece ser interessante, mas lhe recomendo um pouco de cautela. Ao invés de fazer o cache em XML, talvez seja melhor você pensar em uma estratégia de carga de dados por demanda, diminuindo tanto a carga no banco de dados quanto a saturação da sua LAN.

     

    Boa Sorte


    ...
    sexta-feira, 22 de outubro de 2010 14:53