Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Identificação 
  3. Fluxograma
  4. Possíveis Soluções
    1. Changequery;
    2. FWPreparedStatement;
  5. Gráfico 

01. Visão Geral

Identificado baixa performance na Estudo para propor uma melhoria na performance da rotina de Apuração de resultado(CTBA211).

02.Identificação

Identificado pelo log enviado que a demora ocorre pelo numero de chamadas que tem o changequey da rotina Analisando o log de um dos nossos clientes, identificamos que ocorre lentidão no processo de Apuração de Resultados, devido à quantidade de chamadas da função changequery desde a função SALDOCQ.

Na Apuração de Resultados essa a função changequery é chamada para realizar a gravação do gravar:

  • o arquivo temporário

...

  • cada tipo de moeda

...

  • o tipo de saldo

...

  • as contas contábeis

...

03. Fluxograma

Aviso
titleIMPORTANTE
  • As funções A função SALDOCT(X) chama a função SALDOCQ (CTBXSALA).
  • Se a apuração for por movimento será chamado a SALDOCT duas vezes, saldo anterior e saldo atual.

...

04. Possíveis Soluções 


a. Troca da função Changequery

Poderá ser retirado o changequery Retirar a função changequery, realizando tratamento na montagem da query para utilizar o comando correto específico para cada banco (SQL, Oracle, Postgres, DB2). Assim executando executará a query diretamente.


b.  Uso da função FWPreparedStatement

A função FWPreparedStatement representa um comando SQL pré compilado. 

Para utilizá-lo corretamente nesse caso seria é necessário alterar todas as chamadas das origens SALDOCT(X) assim passaria a query correta e destruiria apos o fim da utilização da origem. 


Aviso
titleImportante

Realizei um teste Em testes,  alterando os parâmetros na montagem da query e chamando o PreparedStatement ele funciona porem não eh FWPreparedStatement, funciona porém não da maneira correta por que toda a vez que , já que ao chamar a função SALDOCQ ele   está criando a query e destruindo-a, assim o que não sendo constitui a melhor praticaprática

Como utilizar - FWPreparedStatement

...