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

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor 6 Tagen von codemaster1 2 / 60870
Stücklisten
vor einer Woche von Selma.schwarz 1 / 62643
Belege
vor einer Woche von Selma.schwarz 1 / 60803

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.

Vergleichbare Themen

sequentielles lesen vom Client
von TakerOne » 07.05.2007 12:24
Klassenattribut lesen
von Trulchen » 04.11.2014 10:39
XMl File lesen
von kirmuh » 27.06.2008 12:21
SAP Systemname lesen
von brunotti » 02.04.2007 09:08
File lesen
von Handeglo » 31.01.2008 09:26

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor 6 Tagen von codemaster1 2 / 60870
Stücklisten
vor einer Woche von Selma.schwarz 1 / 62643
Belege
vor einer Woche von Selma.schwarz 1 / 60803

Unbeantwortete Forenbeiträge

Stücklisten
vor einer Woche von Selma.schwarz 1 / 62643
Belege
vor einer Woche von Selma.schwarz 1 / 60803