PERFORMANS

Müşteri tarafından 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.

Leave a Reply

Your email address will not be published. Required fields are marked *