...
| Produto: |
| ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Linha de Produto: |
| ||||||||
| Segmento: |
| ||||||||
| Tipo de Documento: | DSUPCONTR-8730 | ||||||||
| Módulo: | Acordos e Verbas | ||||||||
| Caminho: | Administração > Verbas de Bonificação | ||||||||
| Função: | VERBAS DE BONIFICAÇÃO - MAX0302 | ||||||||
| País: | Brasil | ||||||||
| Ticket: | 22828126 | ||||||||
| Requisito/Story/Issue (informe o requisito relacionado) : |
|
Foi identificada uma lentidão no processo pkg_adm_acordoverba.SP_CONSUMOVERBA_ZERASALDO, causada pela estrutura da query de busca de informações. A função fsaldoacordopromoc está sendo chamada de forma desnecessária para todos os acordos existentes anteriores à data final informada no parâmetro, resultando em acessos ineficientes.
...
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
with AcordosBase as (select Acordo.NroAcordo, Acordo.NroEmpresa, Acordo.SeqFornecedor, Acordo.SeqComprador, Acordo.VlrAcordo, Acordo.IndUtilContrSald, max(case when Verba.NroAcordo is not null then 1 else 0 end) TemVerba, max(case when Verba.DtaFinal >= trunc(sysdate) and Verba.QtdLimiteVerba > decode(nvl(Verba.QtdUtilizadaVerba, 0), 0, -1, Verba.QtdUtilizadaVerba) then 1 else 0 end) TemVerbaVigente, nvl(max(Verba.IndVerbaAutoZeraSaldo), 'N') IndVerbaAutoZeraSaldo from Msu_AcordoPromoc Acordo left join Mrl_CustoVerba Verba on Acordo.NroAcordo = Verba.Nroacordo andon Acordo.NroEmpresaNroAcordo = Verba.NroEmpresaAcordo Nroacordo and where Acordo.AppOrigemNroEmpresa = 2 Verba.NroEmpresaAcordo and Acordo.DtaInicial >= pdDtaInicial nvl(Verba.IndTipAcordo, 'R') = 'R' and Acordo.DtaFimand + 1Verba.StatusVerba <= pdDtaFinal'A' and nvl(Verba.IndVerbaAutoZeraSaldo, 'N')where Acordo.AppOrigem = 'N'2 and and Acordo.DtaInicial >= nvl(pdDtaInicial, Acordo.StatusAcordo, 'P') != 'R' DtaInicial) and Acordo.SituacaoAcordoDtaFim not+ in ('R', 'C')1 <= pdDtaFinal and nvl(VerbaAcordo.IndTipAcordoStatusAcordo, 'RP') != 'R' and Verba.StatusVerba = 'A'Acordo.SituacaoAcordo not in ('R', 'C') group by Acordo.NroAcordo, Acordo.NroEmpresa, Acordo.SeqFornecedor, Acordo.SeqComprador, Acordo.VlrAcordo, Acordo.IndUtilContrSald), -- SALDO DO ACORDO SaldoAcordo as (select AcordosBase.NroAcordo, AcordosBase.NroEmpresa, fsaldoacordopromoc(AcordosBase.NroEmpresa, AcordosBase.NroAcordo, AcordosBase.SeqFornecedor) as VlrSaldo from AcordosBase AcordosBase), -- ACORDOS COM VERBAS VENCIDAS AcordosComVerba as (select AcordosBase.*, 'S' as IndExisteVerba, AcordosBase.NroEmpresa as NroEmpAcordo, Saldo.VlrSaldo from AcordosBase AcordosBase left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo and AcordosBase.NroEmpresa = Saldo.NroEmpresa where Saldo.VlrSaldo > 0 and AcordosBase.TemVerba = 1 and AcordosBase.TemVerbaVigente = 0 and AcordosBase.IndVerbaAutoZeraSaldo = 'N'), -- ACORDOS SEM VERBA AcordosSemVerba as (select AcordosBase.*, 'N' as IndExisteVerba, AcordosBase.NroEmpresa AS NroEmpAcordo, Saldo.VlrSaldo from AcordosBase AcordosBase left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo and AcordosBase.NroEmpresa = Saldo.NroEmpresa where Saldo.VlrSaldo > 0 and AcordosBase.TemVerba = 0) select * from AcordosComVerba union all select * from AcordosSemVerba |
Se estiver na versão 24.07, atualizar o sistema para o service pack 24.07.042 043 ou service pack superior.
Se estiver na versão 25.01, atualizar o sistema para o service pack 25.01.016 017 ou service pack superior.
...