- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 5 meses atrás por Eliza.
-
AutorPosts
-
13 de julho de 2021 às 9:02 am #148647ElizaParticipante
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 ?
13 de julho de 2021 às 10:04 pm #148677MottaParticipanteEliza , 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í.
14 de julho de 2021 às 8:20 am #148678ElizaParticipanteOlá,
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.CODVENDUNION 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.CODVENDUNION 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>14 de julho de 2021 às 4:53 pm #148681ElizaParticipanteInclusão de UNION ALL
Não deveria ficar lento…. estou achando que pode ser o servidor de aplicação
14 de julho de 2021 às 7:04 pm #148682MottaParticipanteNã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.
15 de julho de 2021 às 10:53 am #148683ElizaParticipanteComo 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.
-
AutorPosts
- Você deve fazer login para responder a este tópico.