Merhabalar,
Daha önceki yazımda, ITAB ile ilgili teknik bilgiler vermiştim. Bu yazıda ise internal table için performans konularına değineceğim. Öncelikle basit bir program yazıyoruz, tablolara yazma ve okuma zamanları tutan ve ekrana yazan basit bir program.
Aşağıda görüldüğü gibi, STANDARD, SORTED ve HASHED olmak üzere üç tablo tipini de tanımlıyoruz.
Öncelikle ekrandan girilen kadar satırı tablolarımıza yazıyoruz.

Öncelikle, tablolarımızdan okurken WITH TABLE KEY metodunu kullanıyoruz, burada table_line bizim için key bir alan, daha sonra süreleri ekrana yazdırıyoruz.
Aşağıda görüldüğü gibi bu sefer INDEX ile okuyoruz ve okuma sürelerini ekrana yazıyoruz.
Programımızı açıp öncelikle 100 değerini giriyoruz ve 100 kayıt için yazma ve okuma değerlerini ekrana yazdırıyoruz.
INSERT değerlerine bakarsak, SORTED table için diğerlerinden biraz fazla olduğunu görebiliriz, çünkü verileri sürekli sıralı tuttuğu için değer girerkende veriyi sırayı bozmadan sokmaya çalışacaktır.
Görüldüğü üzere, With Key metoduyla okurken STANDARD tablonun değerinin bir hayli yüksek olduğu gözümüze çarpmaktadır fakat INDEX yöntemi ile okumaya çalışırsak , okuma hızının çok düşük olduğu yine görülecektir.
Sayıyı 1000 e kadar yükseltiriyoruz ve çalıştır tuşuna basıyoruz.
Diğer değerlerin pek değişmediği fakat STANDARD tablodan WITH TABLE KEY metoduyla okuma değerinin çok fazla yükseldiği yine görülecektir, INDEX ile okuma metodunda değer yine sabit kalmaktadır.
HASH table için okuma değeri yine neredeyse aynıdır, daha önceki yazımda bahsettiğim gibi HASHED tablolarda okuma değerleri kayıt sayısından bağımsızdır.
Sayıyı 5000'e yükseltiyoruz ve tekrar çalıştırıyoruz.
Görüldüğü gibi STANDARD tablodan okuma değerinin çok fazla yükseldiği diğer değerlerin yine çok fazla değişmediği görülür.

Test sonuçlarında, STANDARD tablodan WITH TABLE KEY metoduyla veri okumanın bir facia olduğunu görüyoruz, INDEX ile okuma tekniğinde ise değerin değişmediğini ve gayet hızlı bir biçimde okunduğunu görebiliyoruz. HASHED tablolarda değerin değişmediği yine SORTED tablolarda çok fazla oynama olmadığı basit bir biçimde görülmektedir.
ABAP programlarımızda, ihtiyaçlarımıza göre doğru internal table biçimini seçmek programlarımızı oldukça hızlandıracaktır.
Dikkat edelim çanak çömlek patlamasın.
İyi çalışmalar
Modülcülerle paslı oynayıp gol yememeye çalışın.
Yeni yıl da geldi, temiz kod yazın, yeni bir sayfa açın, kendinizi düzene sokun adam olun akıllı olun.
Hiç yorum yok:
Yorum Gönder