Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #105736
    Avatar de mpunganmpungan
    Participante

      1 – SELECT BASE.QTD_ITENS,
      WNEI.*
      FROM (SELECT WNEI.IDNFENTRADA,
      WNEI.NUMSEQITEM,
      COUNT(*) AS QTD_ITENS
      FROM GL_PROTOCOLOCALIBRACAONOTA PCN, –> tabela
      GL_NOTAFISCAL N, –> tabela
      GL_PROTOCOLOCALIBRACAO PC, –> tabela
      VW_PUC_NF_ENTRADA_ITEM WNEI –> Isso é uma view
      WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
      AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
      AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
      AND WNEI.IDNFENTRADA = N.IDNFENTRADA
      AND N.IDNOTAFISCAL = 1187
      GROUP BY WNEI.IDNFENTRADA,
      WNEI.NUMSEQITEM) BASE,
      VW_PUC_NF_ENTRADA_ITEM WNEI
      WHERE WNEI.NUMSEQITEM = BASE.NUMSEQITEM
      AND WNEI.IDNFENTRADA = BASE.IDNFENTRADA;

      2 – SELECT WNEI.IDNFENTRADA,
      WNEI.NUMSEQITEM,
      COUNT(*) AS QTD_ITENS
      FROM GL_PROTOCOLOCALIBRACAONOTA PCN,
      GL_NOTAFISCAL N,
      GL_PROTOCOLOCALIBRACAO PC,
      VW_PUC_NF_ENTRADA_ITEM WNEI
      WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
      AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
      AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
      AND WNEI.IDNFENTRADA = N.IDNFENTRADA
      AND N.IDNOTAFISCAL = 1187
      GROUP BY WNEI.IDNFENTRADA,
      WNEI.NUMSEQITEM

      Pessoal esse select acima esta muito demorado, alguém poderia me auxiliar a tentar melhorar esse select, se executar somente script número 2 é rápido, mas quando executo todo o código script 1, fica muito lento. Segue o plano de execução em anexo.

      #105740
      Avatar de FernandaAcFernandaAc
      Participante

        @mpungan,

        Tudo bem?

        Experimenta usar o comando OVER(PARTITION BY PC.NUMSEQITEM) e faça um teste, como no exemplo abaixo.
        Essa é uma alternativa, veja se ajuda e se atende ao que vc está precisando que retorne na query (pelo que entendi é esse o objetivo)!

        SELECT COUNT() OVER(PARTITION BY WNEI.IDNFENTRADA, WNEI.NUMSEQITEM) AS QTD_ITENS,
        WNEI.

        FROM GL_PROTOCOLOCALIBRACAONOTA PCN,
        GL_NOTAFISCAL N,
        GL_PROTOCOLOCALIBRACAO PC,
        VW_PUC_NF_ENTRADA_ITEM WNEI
        WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
        AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
        AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
        AND WNEI.IDNFENTRADA = N.IDNFENTRADA
        AND N.IDNOTAFISCAL = 1187

        #105742
        Avatar de mpunganmpungan
        Participante

          Valeu pela força, o select melhorou muito com essa função analítica. Muito obrigado.

          Att.

          Mpungan

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