Was ist performanter? Select auf DB oder Read auf itab?

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Was ist performanter? Select auf DB oder Read auf itab?

Beitrag von airwaver (Specialist / 134 / 0 / 1 ) »
Hallo ihr Hacker,

ich frage mich zurzeit was denn effizienter ist.

Aber erstmal meine Aufgabenstellung...
Ich habe eine Langläuferliste, daher muss ich Zeit sparen, wo es geht. Über eine SAP-Funktion werden die nötigsten Daten gelesen. Nun brauche ich aber zB noch Texte zu irgendwelchen Schlüsseln.

Bsp: "Name der Produktart(Feld GSART)". Dazu gehört die Texttabelle TZPAT.

Nun zu meiner Frage:

Ich habe also viele Daten in einer internen Tabelle. Im Loop über die itab werden noch weitere Daten gelesen. Wie greife ich nun effizienter auf den Namen der Produktart zu?

1) Im Loop mache ich einen Select auf die Datenbanktabelle TZPAT natürlich mit Primärindexzugriff.

2) Ich lese beim Programmstart die komplette Tabelle TZPAT (bei uns 137 Einträge) in eine programminterne interne Tabelle und greife im Loop dann per READ TABLE zu.

Was meint ihr? Wenn möglich mit Begründung?

Gruß Andi

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Krueger ( / / 0 / 3 ) »
Interne Tabelle sortieren...

nix loop...

read itab .... binary search

oder Hash-Tabelle (wenn möglich) oder Sorted-Table....

Begründung: Vertrau mir oder der F1-Hilfe....

Beitrag von naphro (ForumUser / 4 / 0 / 0 ) »
Read is auf jeden Fall effizienter als soviele selects.
Ansonsten kannst Du auch in der SE30 mal beide Statements eingeben und da siehst Du dann was definitiv schneller ist.

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Krueger hat geschrieben:Interne Tabelle sortieren...

nix loop...

read itab .... binary search

oder Hash-Tabelle (wenn möglich) oder Sorted-Table....

Begründung: Vertrau mir oder der F1-Hilfe....
Aufgrund umfangreicher Erfahrungen mit großen Datenbeständen kann ich sagen: Du hast recht.


Ralf *er braucht wohl mehrere denen er vertraut ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von airwaver (Specialist / 134 / 0 / 1 ) »
So, da bin ich...
Danke für die Antworten.

Ich traue euch mal und arbeite dann also mit internen Tabellen. Mit dem Loop meinte ich den Loop, in dem weitere Daten gelesen werden müssen. Innerhalb dieses Loops benötige ich ja dann bspw. den Namen der Produktart.

Also vorm Loop mache ich...

Code: Alles auswählen.

SELECT * FROM tzpat INTO TABLE gt_tzpat.
und im Loop dann...

Code: Alles auswählen.

READ TABLE gt_tzpat INTO lwa_tzpat 
WITH KEY spras = sy-langu gsart = 'XXX' BINARY SEARCH.
Ist das so in Ordnung? Kann ich beim definieren der itab einfach das HASHED oder SORTED dranhängen?

Gruß Andi

Beitrag von Krueger ( / / 0 / 3 ) »
Dein "read binary" könnte in diesem Fall auch in die Hose gehen ;)

Bei "read binary" muss die interne Tabelle sortiert vorliegen..., also würde ich diese dann auch als "sorted Table" definieren.

Am besten mal die Hilfe zu "binary search" durchlesen.. :wink:

Seite 1 von 1

Vergleichbare Themen

1
Antw.
610
Views
Performanter Select
von gs3rr4 » 16.07.2014 12:19 • Verfasst in ABAP® für Anfänger
7
Antw.
4375
Views
Select performanter machen
von nikibert » 06.08.2008 14:58 • Verfasst in ABAP® für Anfänger
0
Antw.
747
Views
Read bzw. select
von Fiodora » 07.06.2014 23:33 • Verfasst in ABAP® für Anfänger
3
Antw.
9376
Views
Select mit itab in where-Bedingung
von fcmfanswr » 14.07.2011 10:29 • Verfasst in ABAP® Core
7
Antw.
2780
Views
Select auf eine itab über <fs>
von Dudu » 28.04.2005 12:52 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 22 Stunden von Bright4.5 1 / 489
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2131
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8727