Laufzeitproblem im Select (LIPS/VBUK/VBUP)

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

Laufzeitproblem im Select (LIPS/VBUK/VBUP)

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Hallo,

diesmal habe ICH mal ein Laufzeitproblem ;)

Folgender select single(!!!) läuft irre lang bei mir. Kann mir jemand sagen woran das liegt? Ich selektiere auf Schlüsselfelder!

Code: Alles auswählen.

    SELECT SINGLE p~fksta p~fksaa k~fkstk
              FROM       lips AS l
              INNER JOIN vbuk AS k
              ON  k~vbeln = l~vbelv
              INNER JOIN vbup AS p
              ON  l~vbelv = p~vbeln
              AND l~posnv = p~posnr
              INTO CORRESPONDING FIELDS OF l_order_status
              WHERE k~vbeln = l_order_status-vbeln
               AND  p~posnr = l_order_status-posnr.
Hab ich an der Join irgendwas falsch gemacht?


Danke!

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
HI!
Ich glaub du musst nochmals nachschauen, ob du an den Richtigen Stellen auf vbelN und vbelV gehst.
Ich glaub das du bei dennen ein wenig durcheinandergekommen bist und deshalb einen total Schlechten Index hast und von Symantischen her auch nicht korreckt ist.

Beitrag von just (ForumUser / 35 / 0 / 0 ) »
vorab mal ne frage:

warum nutzt du überhaupt den join über die lips?
ale felder sind doch in den anderen tabellen und hier gibts ja auch ne direkte verbindung.

nun zu deinem problem:
SAP mag keine JOINs, weil die nicht über den Datenbankpuffer auf dem Application-Server abgedeckt werden können.
möglicherweise bist du hier schneller, wenn du 2x den select single machst...

probiers einfach mal aus, bei mir lief das nämlich relativ fix (<1s), hab aber auch nur wenige daten in den tabellen.

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
just hat geschrieben:warum nutzt du überhaupt den join über die lips?
ale felder sind doch in den anderen tabellen und hier gibts ja auch ne direkte verbindung.
Also, Zweck der Übung war: Suche mir zur Lieferung die drei Felder raus bei DER Lieferung, die zum Vertriebsbeleg gehört, der in l_order_status genannt ist.

Ich muss also von meiner VBELN/POSNR auf die Lieferung schließen (VBELV/POSNV) und zu DER Lieferung (VBELN/POSNR) VBUK und VBUP selektieren, denn DA sind die Felder gefüllt, die ich haben will.

In der WHERE-Bedingung müssen also l~vbelv und l~posnv stehen. Schneller wird mein Programm aber dadurch nicht ;)

Auch wenn ich drei select single mache, habe ich das Problem, dass ich in der LIPS nicht auf Schlüsselfelder zugreife, sondern eben auf VBELV und POSNV, das führt dazu, dass genau DA das Laufzeitproblem liegt, das ich vorher in der View hatte.




Ralf

Code: Alles auswählen.

    CLEAR l_lips_mem.
    SELECT SINGLE vbeln posnr
          FROM lips INTO CORRESPONDING FIELDS OF l_lips_mem
                WHERE vbelv = l_order_status-vbeln
                 AND  posnv = l_order_status-posnr.
    SELECT SINGLE fkstk INTO l_order_status-fkstk
         FROM vbuk WHERE vbeln = l_lips_mem-vbeln.
    SELECT SINGLE fksta fksaa
         INTO CORRESPONDING FIELDS OF l_order_status
         FROM vbup WHERE vbeln = l_lips_mem-vbeln
                    AND  posnr = l_lips_mem-posnr.
l_lips_mem enthält nur die Felder vbeln und posnr.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
ralf.wenzel hat geschrieben:Auch wenn ich drei select single mache, habe ich das Problem, dass ich in der LIPS nicht auf Schlüsselfelder zugreife, sondern eben auf VBELV und POSNV
Kann es sein, dass ich einen entsprechenden Index anlegen muss? Ich krieg den LIPS-Zugriff einfach nicht beschleunigt....


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von JHM (Top Expert / 1201 / 1 / 197 ) »
ralf.wenzel hat geschrieben: Kann es sein, dass ich einen entsprechenden Index anlegen muss? Ich krieg den LIPS-Zugriff einfach nicht beschleunigt....
Du kannst sonst über die VBFA lesen. Die ist zwar im Standard eine Clustertabelle somit ist kein Join möglich aber du kannst dierekt über den Index lesen.

Code: Alles auswählen.

SELECT vbeln posnn
FROM vbfa
INTO TABLE it_lieferung
WHERE vbelv   EQ l_order_status-vbeln
  AND posnv   EQ l_order_status-posnr
  AND vbtyp_n EQ 'C' "Auftrag
  AND vbtyp_v EQ 'J' "Lieferung.
Dann mit den gelesenen Lieferungen die VBUK/VBUP lesen.
Gruß Hendrik

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
JHM hat geschrieben:Du kannst sonst über die VBFA lesen. Die ist zwar im Standard eine Clustertabelle somit ist kein Join möglich aber du kannst dierekt über den Index lesen.
Jo, um ein Vielfaches schneller isses nu -- ich seh mir dann mal die Daten an die rauskommen.


Vielen Dank für die Hilfe!!


Ralf *End of Thread ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

13
Antw.
1303
Views
Laufzeitproblem - COMMIT aufteilen?
von ralf.wenzel » 08.03.2023 20:00 • Verfasst in ABAP® Core
0
Antw.
885
Views
7
Antw.
3437
Views
Feld Lips unbekannt
von jonas1996 » 24.04.2014 11:14 • Verfasst in ABAP® für Anfänger
1
Antw.
2071
Views
Verknüpfung EKET zu LIPS ???
von the » 27.06.2005 07:24 • Verfasst in ABAP® für Anfänger
1
Antw.
1401
Views
LIPS Daten in N.findung - Kopfbedingung
von bapimueller » 12.11.2018 12:07 • Verfasst in Sales and Distribution

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1737
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2291

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.

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1737
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2291

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 274
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 864
MS-Word als Editor
letzen Monat von tekko 1 / 4371