Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #148647
    Avatar de ElizaEliza
    Participante

      Bom dia,

      Tenho alguns relatórios baseadas em views.    Até a semana passada estava normal, já nesta, estão mais lentos.

      Tem alguma configuração no banco, ou limpeza de  arquivos temporários,…..    que possam melhorar a performance dos relatórios ?

       

       

       

      #148677
      Avatar de MottaMotta
      Participante

        Eliza , problema meio “gasoso” , mas vamos :

        A base (dados , usuários) cresceu ?

        Alguma mudança de infraestrutura ?

        Versão , software , SO etc.

        As estatísticas estão atualizadas ?

        Houve deleções na base ?

        As views acessam as mesmas tablespaces/datafiles ?

        Procure pelo que mudou na estrutura , o culpado em geral está aí.

        #148678
        Avatar de ElizaEliza
        Participante

          Olá,

          Respondendo: NÂO às perguntas.

          Fizemos uma alteração na view, que se fez necessária:

          ======== ANTES ===========================

          CREATE OR REPLACE FORCE EDITIONABLE VIEW “TESTE”.”TCP_CPASGDL” (“DTENTSAI”, “CODEMP”, “NUNOTA”, “NUMNOTA”, “CODPARC”, “RAZAOSOCIAL”, “CODPROD”, “QTDNEG”, “VLRTOT”, “VLRIPI”, “VLRSUBST”, “VLRDESC”, “VLRCPA”, “CODVEND”, “APELIDO”) AS
          SELECT
          NVL(CAB.DTENTSAI,CAB.DTNEG) AS DTENTSAI, , CAB.CODEMP, CAB.NUNOTA, CAB.NUMNOTA, CAB.CODPARC, PAR.RAZAOSOCIAL, ITE.CODPROD, ITE.QTDNEG, ITE.VLRTOT, ITE.VLRIPI, ITE.VLRSUBST, ITE.VLRDESC, ROUND((ITE.VLRTOT+ITE.VLRIPI+ITE.VLRSUBST-ITE.VLRDESC)/(ITE.QTDNEG),2) AS VLRCPA, VEN.CODVEND , VEN.APELIDO
          FROM TGFCAB CAB,
          TGFTOP TPO,
          TGFITE ITE,
          TGFPAR PAR,
          TGFVEN VEN
          WHERE
          CAB.CODTIPOPER = TPO.CODTIPOPER
          AND CAB.DHTIPOPER = TPO.DHALTER AND CAB.CODPARC = PAR.CODPARC
          AND CAB.STATUSNOTA = ‘L’ AND CAB.NUNOTA = ITE.NUNOTA
          –AND TPO.AD_FECHGDLCPAS = ‘S’   AND TPO.GRUPO = ‘COMPRAS’      AND TPO.TIPMOV in (‘C’)AND CAB.CODVEND = VEN.CODVEND

           

          ======== DEPOIS ==============================
          <div>

          CREATE OR REPLACE FORCE EDITIONABLE VIEW “LEONFER”.”TCP_CPASGDL” (“DTENTSAI”, “CODEMP”, “NUNOTA”, “NUMNOTA”, “CODPARC”, “RAZAOSOCIAL”, “CODPROD”, “QTDNEG”, “VLRTOT”, “VLRIPI”, “VLRSUBST”, “VLRDESC”, “VLRCPA”, “CODVEND”, “APELIDO”) AS
          SELECT
          NVL(CAB.DTENTSAI,CAB.DTNEG) AS DTENTSAI , CAB.CODEMP , CAB.NUNOTA , CAB.NUMNOTA , CAB.CODPARC , PAR.RAZAOSOCIAL , ITE.CODPROD , ITE.QTDNEG , ITE.VLRTOT
          , ITE.VLRIPI , ITE.VLRSUBST , ITE.VLRDESC , ROUND((ITE.VLRTOT+ITE.VLRIPI+ITE.VLRSUBST-ITE.VLRDESC)/(ITE.QTDNEG),2) AS VLRCPA , VEN.CODVEND , VEN.APELIDO
          FROM TGFCAB CAB
          , TGFTOP TPO
          , TGFITE ITE
          , TGFPAR PAR
          , TGFVEN VEN
          WHERE CAB.CODTIPOPER = TPO.CODTIPOPER
          AND CAB.DHTIPOPER = TPO.DHALTER
          AND CAB.CODPARC = PAR.CODPARC
          AND CAB.STATUSNOTA = ‘L’
          AND CAB.NUNOTA = ITE.NUNOTA
          –AND TPO.AD_FECHGDLCPAS = ‘S’
          AND TPO.GRUPO = ‘COMPRAS’
          AND TPO.TIPMOV in (‘C’)
          AND CAB.CODVEND = VEN.CODVEND

          UNION ALL
          SELECT
          NVL(CAB.DTENTSAI,CAB.DTNEG) AS DTENTSAI , CAB.CODEMP , CAB.NUNOTA , CAB.NUMNOTA , CAB.CODPARC , PAR.RAZAOSOCIAL , ITE.CODPROD , ITE.QTDNEG , ITE.VLRTOT , ITE.VLRIPI , ITE.VLRSUBST , ITE.VLRDESC
          , ROUND((ITE.VLRTOT+ITE.VLRIPI+ITE.VLRSUBST-ITE.VLRDESC)/(ITE.QTDNEG),2) AS VLRCPA , VEN.CODVEND , VEN.APELIDO
          FROM TGFCAB CAB
          , TGFTOP TPO
          , TGFITE ITE
          , TGFPAR PAR
          , TGFVEN VEN
          WHERE CAB.CODTIPOPER = TPO.CODTIPOPER
          AND CAB.DHTIPOPER = TPO.DHALTER
          AND CAB.CODPARC = PAR.CODPARC
          AND CAB.STATUSNOTA = ‘L’
          AND CAB.NUNOTA = ITE.NUNOTA
          –AND TPO.AD_FECHGDLCPAS = ‘S’
          AND ( TPO.GRUPO = ‘TRANSFERÊNCIA’ AND TPO.CODTIPOPER = 807)
          AND ITE.CODVEND = VEN.CODVEND

          UNION ALL
          SELECT
          NVL(CAB.DTENTSAI,CAB.DTNEG) AS DTENTSAI , CAB.CODEMP , CAB.NUNOTA , CAB.NUMNOTA , CAB.CODPARC , PAR.RAZAOSOCIAL , ITE.CODPROD , ITE.QTDNEG , ITE.VLRTOT , ITE.VLRIPI , ITE.VLRSUBST , ITE.VLRDESC
          , ROUND((ITE.VLRTOT+ITE.VLRIPI+ITE.VLRSUBST-ITE.VLRDESC)/(ITE.QTDNEG),2) AS VLRCPA , VEN.CODVEND , VEN.APELIDO
          FROM TGFCAB CAB
          , TGFTOP TPO
          , TGFITE ITE
          , TGFPAR PAR
          , TGFVEN VEN
          WHERE CAB.CODTIPOPER = TPO.CODTIPOPER
          AND CAB.DHTIPOPER = TPO.DHALTER
          AND CAB.CODPARC = PAR.CODPARC
          AND CAB.STATUSNOTA = ‘L’
          AND CAB.NUNOTA = ITE.NUNOTA
          –AND TPO.AD_FECHGDLCPAS = ‘S’
          AND ( TPO.GRUPO = ‘INVENTÁRIO’ AND TPO.CODTIPOPER = 900)
          AND ITE.CODVEND = VEN.CODVEND

          </div>
          <div></div>
          <div>E  por se tratar de um software de terceiro,  estamos verificando se a aplicação gera log, temporários,… no servidor.  Se acontecer, precisaremos excluir  periodicamente.</div>
          <div></div>
          <div></div>
          <div></div>

          #148681
          Avatar de ElizaEliza
          Participante

            Inclusão de  UNION ALL

            Não deveria ficar lento….  estou achando que pode ser o servidor de aplicação

             

            #148682
            Avatar de MottaMotta
            Participante

              Não deveria ficar lento … Concordo com você mas o Banco discorda … 🙂

              O union deve ser o culpado , como é a execução  dos sql de forma separada ?

              As tabelas são as mesmas não tentaram em só select ?

              PS , Mantenha as estatísticas atualizadas , um job semanal numa hora de ociosidade de máquina resolve.

              #148683
              Avatar de ElizaEliza
              Participante

                Como as informações são únicas,  troquei o UNION  ALL  por UNION.

                Melhorou muito a performance.

                Vou tentar colocar num select só.

                 

                Obrigada pelo retorno e dicas.

                 

                 

                 

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.
              plugins premium WordPress