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.
Bilgisayar Mühendisi
serkurumsal@yandex.com
Social Plugin