Léo ABAP

Performance no acesso a dados do ABAP 7.52

Olá, mais um artigo aqui no Blog!

Hoje vamos falar sobre FOR ALL ENTRIES e outras táticas novas para dar mais performance na conversa com o banco de dados. Vamos lá!

Quando falamos de poucos registros, o FOR ALL ENTRIES é interessante, porém quando falamos de muitos registros, ele passa a não corresponder tão bem ao desempenho.

Claro, algumas pessoas já sabiam disso faz tempo! (rs). Pensando nisso, a SAP, na nova versão do ABAP fez uma feature interessante. Você poderá usar tabelas internas do tipo sorted para usar na chave do seu JOIN.

Veja:

Em um primeiro momento, use uma tabela interna como um “data source”, quase como um ponteiro utilizando buffer tb!

SELECT item~rbukrs, item~gjahr, item~belnr FROM acdoca AS item INNER JOIN @lt_bkpf AS head
ON item~rldnr = ‘0L’
AND item~rbukrs = head~bukrs
AND item~gjahr = head~gjahr
AND item~belnr = head~gjahr
INTO TABLE @lt_acdoca BYPASSING BUFFER.

Isso torna a consulta bem mais rápida do que o FOR ALL ENTIRES;

Outra dica é usar uma tabela interna, só que do tipo SORTED TABLE:

TYPES tt_bkpf_sort TYPE SORTED TABLE OF ts_bkpf WITH UNIQUE KEY bukrs gjahr belnr.

 

DATA lt_bkpf_sort TYPE tt_bkpf_sort.

 

SORT lt_bkpf BY bukrs gjahr belnr.

 

lt_bkpf_sort = CORRESPONDING #( lt_bkpf ).

 

SELECT item~rbukrs, item~gjahr, item~belnr
FROM acdoca AS item INNER JOIN @lt_bkpf_sort AS head
ON item~rldnr = ‘0L’
AND item~rbukrs = head~bukrs
AND item~gjahr = head~gjahr
AND item~belnr = head~gjahr
INTO TABLE @data(lt_acdoca) BYPASSING BUFFER.

  • Veja que na minha 1, temos o tipo de tabela interna classificada com uma chave única, ordenada por Empresa, Exercício e Número de Documento;
  • Depois, na linha 4, temos a estrutura que foi ordenada para realizar a busca pela chave no banco de dados, é como se fosse um FOR ALL ENTRIES mas não é! rs

Bom povo, vou vendo mais artigos e novidades e vou postando aqui!

 

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.