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
SAP ve ABAP ile ilgili tüm sorun ve sorularınızı gönderebilirsiniz.