Müşteri tarafında geliştirilen programlar yanlış kodlama nedeniyle yavaş çalışabilmektedir. Programların analiz edilmesi için bazı tavsiyeler aşağıdadır.

Performans Analiz Araçları

Programların performansını izlemek için SAP mükemmel araçlar sunar. Kullanılan bazı işlem kodlar aşağıdadır.
İşlem Kodu Tanım Açıklama
ST05  Peformance Analysis  SQL komutları izlenebilir.
SE30 ABAP Runtime Analysis Herhangi bir programın veya fonksiyonu çalıştırarak zaman kayıplarının hangi iÅŸlemde olduÄŸu görülebilir. Tablolara eriÅŸim, fonksiyonların çalışma süreleri ve ABAP kodundaki süreler takip edilebilir. 
SAT ABAP Runtime Analysis SE30’ un yeni versiyonudur.

PERFORMANS OPTÄ°MÄ°ZASYONU

Müşteri programlarının performans optimizasyonu için  aÅŸağıdaki konuların gözden geçirilmesi faydalı olacaktır.
  • Veritabanı iÅŸlemleri
  • Dahili tablo iÅŸlemleri

Veritabanı İşlemleri

Veritabanından veri çekim işlemleri sırasında aşağıdaki maddelere dikkat etmek faydalı olacaktır.
  • SELECT cümlesinde WHERE kullanarak filtreleme yapılması gerekir.
  • Dahili tablo döngülerinde (LOOP, ENDLOOP) SELECT cümleleri kullanılmamalıdır.
  • SELECT * kullanmaktan kaçınmalı sadece gerekli alanlar çekilmelidir.
  •  Tabloda kayıt bulunup bulunmadığı kontrolü yapılacaksa SELECT UP TO 1 ROW kullanılabilir.
  • SELECT cümlesinde WHERE koÅŸulunda olabildiÄŸince anahtar alanlar kullanılmalıdır.
  • SELECT cümlesinde WHERE koÅŸulunda LIKE ‘A%’ kullanımından kaçınılmalıdır.
  • FOR ALL ENTRIES kullanılarak yapılan seçimlerde dahili tablonun boÅŸ olmadığından emin olunmalıdır.
  • SELECT cümlesinde en fazla 5 tablo JOIN yapılmalıdır.
  • Özellikle döngü içerisinde SELECT cümlesinde COUNT, MAX, MIN gibi ifadeler olabildiÄŸince az kullanılmalıdır.
  • Tablolara dikkatlice indeks eklenmelidir. Ä°ndeksler tablodan veri okurken hız artışını saÄŸlar ancak tabloya kayıt eklerken bütün indeks kayıtlar güncellendiÄŸi için yazım iÅŸlemini yavaÅŸlatırlar.

DAHÄ°LÄ° TABLOLAR

  • Çok fazla kayıt içeren dahili tablolar LOOP, ENDLOOP ile döngüde kullanılırken çalışma alanı yerine alan sembolleri kullanılabilir. Alan sembolleri kullanılarak veriler baÅŸka bir hafıza alanına aktarılmaz direk veri üzerinde iÅŸlem yapılır. Çalışma alanında ise önce veriler belirtilen çalışma alanına aktarılır daha sonra döngü devam eder.
  • Bir dahili tablonun içeriÄŸi aynı veri tipine sahip baÅŸka bir dahili tabloya aktarılacağı zaman LOOP, ENDLOOP döngüsü yerine APPEND LINES OF kullanılabilir.
  • Dahili tablodan kayıt silineceÄŸi zaman LOOP, ENDLOOP döngüsü içerisinde deÄŸil. DELETE ifadesi ile silinebilir.
Serkan AKKAVAK
Bilgisayar Mühendisi
serkurumsal@yandex.com