Bu yazıda ABAP’ta mevcut olan internal tablolar arasındaki farklara değineceğiz. ABAP’ta temel olarak üç farklı internal table türü vardır:
- STANDARD TABLE
- SORTED TABLE
- HASHED TABLE
STANDARD TABLE (Standart Internal Table)
STANDARD TABLE, en basit ve en yaygın kullanılan internal table türüdür.
Özellikleri
- Veriler eklenme sırasına göre tutulur
- Index tabanlı erişim vardır
- Key ile arama lineer (yavaş) şekilde yapılır
Ne zaman kullanılır?
- Küçük ve orta ölçekli veri setlerinde
- Sıralama önemli değilse
- Basit loop işlemlerinde
Örnek
DATA: lt_table TYPE STANDARD TABLE OF mara,
ls_line TYPE mara.
APPEND ls_line TO lt_table.
READ TABLE lt_table WITH KEY matnr = '123'.
SORTED TABLE (Sıralı Internal Table)
SORTED TABLE, verileri belirli bir key’e göre otomatik olarak sıralı tutar.
Özellikleri
- Veriler her zaman sıralıdır
- Binary search kullanır (hızlı arama)
- UNIQUE veya NON-UNIQUE olabilir
Ne zaman kullanılır?
- Sık arama yapılıyorsa
- Verinin sıralı olması gerekiyorsa
Örnek
DATA: lt_table TYPE SORTED TABLE OF mara
WITH UNIQUE KEY matnr.
READ TABLE lt_table WITH KEY matnr = '123'.
HASHED TABLE (Hash Internal Table)
HASHED TABLE, en hızlı erişim sağlayan internal table türüdür.
Özellikleri
- Hash algoritması kullanır
- Key ile erişim çok hızlıdır
- Index erişimi yoktur
- Duplicate key kabul etmez (her zaman UNIQUE)
Ne zaman kullanılır?
- Büyük veri setlerinde
- Sürekli key ile erişim yapılacaksa
- Performans kritikse
Örnek
DATA: lt_table TYPE HASHED TABLE OF mara
WITH UNIQUE KEY matnr.
READ TABLE lt_table WITH KEY matnr = '123'.
Performans Karşılaştırması
| Özellik | STANDARD | SORTED | HASHED |
|---|---|---|---|
| Ekleme | Hızlı | Orta | Orta |
| Key ile okuma | Yavaş | Hızlı | Çok hızlı |
| Sıralama | Yok | Var | Yok |
| Index erişimi | Var | Var | Yok |
| Duplicate key | Var | Opsiyonel | Yok |
Hangi Durumda Hangisi Kullanılmalı?
- Basit işlemler için STANDARD TABLE
- Sıralı veri ve hızlı arama için SORTED TABLE
- En yüksek performans için HASHED TABLE
Sonuç
Internal table seçimi, ABAP uygulamalarında performansı doğrudan etkiler. Özellikle büyük veri setlerinde yanlış tablo tipi kullanımı ciddi performans problemlerine yol açabilir.
Genel bir kural olarak:
- Çok sık key ile arama yapıyorsan STANDARD TABLE yerine SORTED veya HASHED TABLE tercih etmelisin
- Performans kritik senaryolarda HASHED TABLE genellikle en iyi seçenektir
Abap’ta Clear, Refresh ve Free farkını öğrenmek için bu yazıyı okuyabilirsiniz.
Link : http://www.mustafahamit.com/abap-clear-refresh-ve-free-nedir-farklari-nelerdir/
![]()