none
Reporting Services Lento RRS feed

  • Pergunta

  • Pessoal tenho um ambiente com reporting services 2005 que apresenta lentidão para executar os relatorios já tentei alterar o recycle no IIS porem não obtive sucesso com o meu problema. A query do relatorio é executada em menos de 1 mim enquanto o relatorio esta levando uns 5,6 min percebo olhando o active monitory do sql que ao executar o relatorio existe um processo na base dos relatorios que fica em lock aguardando a execução de outro processo na mesma base Acredito que o problema está na contrução do snapshot na base do reporting services mas precisso de ajuda para averiguar se é isso mesmo e corrigir o problema obrigado
    sexta-feira, 10 de julho de 2009 19:35

Respostas

  • Pessoal
    Depois  conseguir resolver o problema.
    Analise as staticas do relatorio acessando a tabela ExecutionLog localizado no database do reporting services a constatei que a lentidão estava no query  , contudo ao executar o query separadamente no  manegement studio o mesmo não apresentava lentidão.
    a lentidão ocorria porque utiliza um filtro multiSelect que retornava muitos valores (1000 ou mais )   que eram aplicado a uma clausula IN(@variavel)
    Resolvi o problema alterando o filtro para trazer como default não todos os valores(1000) e sim um valor "Todos" que criei e alterando a clausula where para IN(variavel) or 'todos' in (@variavel)
    Problema resolvido relatorio rodando em 20 seg  ao inves de 9 min como anteriormente.
     
    • Marcado como Resposta Leonardo Guide segunda-feira, 20 de julho de 2009 17:22
    segunda-feira, 20 de julho de 2009 17:22

Todas as Respostas

  • Leonardo,

    Você já tentou matar este processo?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 10 de julho de 2009 19:40
  • Já sim  e ao matar ele o servidor de relatorios sai do ar e tenho que reiniciar o serviço
    acredito que este processo deve ficar sempre ativo.
    vou usar o sql profiler e ver se consigo mais informações
    obrigado pela ajuda
    sexta-feira, 10 de julho de 2009 19:51
  • Pessoal
    Fiz um analise mais detalhada utilizando o sql profiller para averiguar qual o problema
    analisando os log pode ver que o processo  principal (que deixa o outro em lock) é o responsavel por criar o snapshot do relatorio ( observei isso pela chamada do mesmo as procedures
    exec GetChunkPointerAndLength @SnapshotDataID='77C01CD7-B58F-4D5B-BF2B-BA300EF3AAB6',@IsPermanentSnapshot=1,@ChunkName=N'CompiledDefinition',@ChunkType=0
    exec ReadLockSnapshot @snapshotDataID='77C01CD7-B58F-4D5B-BF2B-BA300EF3AAB6'

    acredito que o problema de performace esta na criação do snpashot
    alguem teria mais informações de como optimizar a mesma
    obrigado

    sexta-feira, 10 de julho de 2009 20:29
  • Leonardo,


    Este relatório esta publicado em um diretório virtual controlado pelo IIS!!!

    Como estão as configurações do IIS?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sábado, 11 de julho de 2009 23:19
  • Pessoal
    Depois  conseguir resolver o problema.
    Analise as staticas do relatorio acessando a tabela ExecutionLog localizado no database do reporting services a constatei que a lentidão estava no query  , contudo ao executar o query separadamente no  manegement studio o mesmo não apresentava lentidão.
    a lentidão ocorria porque utiliza um filtro multiSelect que retornava muitos valores (1000 ou mais )   que eram aplicado a uma clausula IN(@variavel)
    Resolvi o problema alterando o filtro para trazer como default não todos os valores(1000) e sim um valor "Todos" que criei e alterando a clausula where para IN(variavel) or 'todos' in (@variavel)
    Problema resolvido relatorio rodando em 20 seg  ao inves de 9 min como anteriormente.
     
    • Marcado como Resposta Leonardo Guide segunda-feira, 20 de julho de 2009 17:22
    segunda-feira, 20 de julho de 2009 17:22