none
REPORT VIEW CPU 90-100% SERVIDOR DE APLICAÇÃO RRS feed

  • Pergunta

  • Galera,

    Estou com um problema de performance no ReportView em ambiente web.

    TESTE APLICADO: Ao realizar uma pesquisa que retorna +/- 50 páginas (lembrando que o relatório esta com layout, por esse motivo que deu +/- 50 páginas) a CPU do servidor de aplicação fica em torno de 90-100%, por este motivo a aplicação inteira fica extremamente lenta. Preciso de  ajuda!!!!!!!!


    OBS1: Realizei 20 acessos simultâneos no TESTE APLICADO.

    OBS2: O relatório não tem campos calculados.

    OBS3: A consulta no plsql (oracle) dura em torno de 10 segundos.

    OBS4: ReportViewer Version=9.0.0.0

    OBS5: Visual Studio 2008

    OBS6: 5gb ram / 2 cpu 3ghz intel xeon / windows server 2003 / IIS6


    Abraços,
    Tiago
    quarta-feira, 14 de abril de 2010 21:21

Todas as Respostas

  • Seu problema está na select, amigo.
    10 segundos para retornar valores?

    Se você não tiver fazendo mais de 11 join em tabelas com mais de 50 mil registros, então sua select está fazendo coisa desnecessária.

    Select tem que retornar em 0 segundos (tenho projeto que faço join em 4 tabelas com 182 mil registros e vai em zero segundo. E olha que trago todos as colunas e ainda faço umas concatenação =D

    Ph - Gambi.NET® Framework Certificated 2010
    quinta-feira, 15 de abril de 2010 12:20
  • Olá,

    Eu tive um problema com isso já e fui ver que o problema era a session que ele gera e guarda, eu na época crei um método que ficava apagando essa session, da uma pesquisada aqui no forum que eu postei a solução.

    quinta-feira, 15 de abril de 2010 12:58
  • Session você pode setar tanto na aplicação quanto no IIS para que ela seja destruída após um período.
    Nos projetos hoje onde trabalho, usa-se Session para armazenar conteúdo de tabela, dados de usuários..  quantidades de informações severas...  e a constante de usuários online é de 300.

    Nunca tivemos problemas com Session.
    Acho que Session realmente dá problema se você deixar ela eterna e ficar populando 10 mil registros por postback ehehehe =D

    Ph - Gambi.NET® Framework Certificated 2010
    quinta-feira, 15 de abril de 2010 14:29
  • Mais era a session gerada do proprio reportViewer ele não apagava ficava cada vez ficando maior :), eu só descobri isso pq eu usava session no SQL só que no meu sistema tinha de 8 a 10 mil user abrindo essas reportViewer ao mesmo tempo por isso deu esses problemas
    quinta-feira, 15 de abril de 2010 14:34
  • Seilor,

    Toda vez que o relatório é gerado o seguinte código é executado:

    Session.Remove("dsRelatorio")
    GC.Collect() 

     

    --> trecho do código do web.config

    <sessionState mode="StateServer"  timeout="20" >

     

    Não entendi "session gerada do proprio reportViewer", que session?

     

    Abraços,

    Tiago
    quinta-feira, 15 de abril de 2010 21:45
  • na época eu fiz isso


     For i As Integer = 0 To Session.Count - 1
                If Session.Item(i).GetType().FullName = "Microsoft.Reporting.WebForms.ReportHierarchy" Then
                    Session.RemoveAt(i)
                End If
     Next

    sexta-feira, 16 de abril de 2010 11:48