Unterschied: Sequentielles lesen, direktes lesen

Getting started ... Alles für einen gelungenen Start.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Unterschied: Sequentielles lesen, direktes lesen

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo zusammen,

ich bin hier grad wieder an so nem Massendatenverarbeitungsmegaalleskönnerreport...

Wobei das genauso ausichtslos erscheint, wie mein damaliges Problem im SD Umfeld...aber zum Thema....


Ich lese eine Datenbanktabelle (inhalt > 360mio Einträge) mit verschiedenen Where bedingungen.

Von diesen Bedingungen sind 3 stück in einem sekundär index (wobei dieser 4 Felder beinhaltet...mir fehlt eben das letzte der 4 Felder).

Den Report lasse ich als Hintergrundjob laufen, da er sehr lange braucht.(was auch das eigentliche Problem ist)

Wenn ich nun in der SM50 mein Job anschauen...dann steht da eben das er sequentiell liest...
Das heist doch das er die Datenbank von oben nach unten durchliest? Wieso macht er das, wenn er doch eigentlich mit Index lesen sollte.

Was ist eigentlich genau der unterschied zwischen sequentielles lesen und direktes lesen im SAP Bereich???


Wo kann die Performance verloren gehen, wenn ich eigentlich mit Index lese? (Habe bei der Select anweisung mit dem %_hint Befehl dem Select mitgeteilt, welchen index er nutzen soll)

Achja...
ich rufe diesen Select 2mal auf ...nacheinander.

Grob gesagt suche ich zuerst alle Sätze mit 1 und grün.
und dann suche ich alle Sätze mit 2 und Rot.

Das kann ich kaum in ein einzelnen Select zusammenbringen oder?

Gruß
Markus

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


Beitrag von JDO (ForumUser / 45 / 0 / 3 ) »
Hallo Markus,

ob direkt oder sequentiell gelesen wird, hat nichts mit der Nutzung eines Index zu tun; ein Index ist ja auch nur eine Tabelle bzw. eine sortierte Lste, die, wenn mehrere Sätze gelesen werden sollen, sequentiell abgearbeitet werden muß.

Direktes Lesen geht nur entweder mit SELECT * SINGLE mit voll qualifiziertem Schlüssel oder mit SELECT * UP TO 1 ROWS, letzteres aber nur, wenn kein ORDER BY verwendet wird, denn dabei werden zunächst alle Sätze gelesen, die die Bedingung(en) erfüllen, dann sortiert und dann der erste Satz zurückgeben.

Anders ausgedrückt, direkt gelesen wird nur dann, wenn das Ergebnis genau ein Datensatz ist. Wenn Du z.B. die MARA mit SELECT ... ENDSELECT durchläufst und zu jeder Materialnummer mit SELECT * SINGLE den Materialtext holst, erfolgt das Lesen der MARA sequentiell und das Lesen der MAKT direkt.

MfG Jürgen

Seite 1 von 1

Vergleichbare Themen

7
Antw.
2865
Views
sequentielles lesen vom Client
von TakerOne » 07.05.2007 12:24 • Verfasst in ABAP® Core
2
Antw.
1827
Views
Namensänderungen aus IT2 lesen???
von Gast » 30.08.2005 18:01 • Verfasst in ABAP® für Anfänger
2
Antw.
6588
Views
Klassenattribut lesen
von Trulchen » 04.11.2014 10:39 • Verfasst in ABAP® für Anfänger
12
Antw.
13555
Views
XMl File lesen
von kirmuh » 27.06.2008 12:21 • Verfasst in ABAP Objects®
3
Antw.
3252
Views
Lesen von COEP
von wodist » 04.07.2006 07:20 • 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

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141