laufzeitfehler bei join

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

laufzeitfehler bei join

Beitrag von OliverK185 (ForumUser / 2 / 0 / 0 ) »
Hallo community,

ich hab nen join kreiert, der obwohl es nur 15 Datensätze als resultat gibt, über die laufzeit (600 sekunden?) geht. Ich verwende eine
- Eigens gestaltete tabelle zvbap_OK mit key(vbeln,posnr) und
- die vbep.
Hier das SELECT:

SELECT e~vbeln e~posnr e~etenr e~edatu e~bmeng e~lmeng e~mbdat
e~wadat a~sflag
INTO (ktab_neu_zvbep-vbeln, ktab_neu_zvbep-posnr, ktab_neu_zvbep-etenr,
ktab_neu_zvbep-edatu, ktab_neu_zvbep-bmeng, ktab_neu_zvbep-lmeng,
ktab_neu_zvbep-mbdat, ktab_neu_zvbep-wadat, ktab_neu_zvbep-sflag )
FROM zvbap_OK AS a JOIN vbep AS e ON a~vbeln = e~vbeln
AND a~posnr = e~posnr
WHERE a~vbeln IN svbeln
AND a~sflag EQ '0' OR a~sflag EQ 'Z' .

Ich schränke in der select-options die svbeln auf '0002540304' ein, es sollten also mit allen positionen etwa 15 DS gelesen werden, und das dauert so lange, bis ich einen laufzeitfehler bekomme.

Lasse ich den join weg (also die vbep), dann hab ich meine 15 DS (ohne den vbep-daten) sofort. Und der JOIN auf die vbep von 15 DS dauert dann so ewigkeiten?!?!

Hab mich dann in der sap-hilfe schlau gemacht: Es werden zuerst die tabellen gejoint (zvbap_OK, vbep), und dann erst die where klausel bearbeitet. Ich nehme an, dass das so lange dauert. zvbap*vbep:450.000*5.000.000

Ich kann aber meine "where-klausel" nicht in die join-bedingung einbringen (e~vbeln IN svbeln in der ON-bedingung denke ich wär die lösung), da das mit open-sql nicht funktioniert.

Habt ihr da ideen?

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Dein Problem ist die Wherebedingung!

Du hast da folgendes stehen:
"AND a~sflag EQ '0' OR a~sflag EQ 'Z' ."
Mach daraus mal "AND ( a~sflag EQ '0' OR a~sflag EQ 'Z' ) ."

Der Grund:
AND zieht stärker wo OR,
sprich dein "a~vbeln IN svbeln" bezog sich nur zum "a~sflag EQ '0' " aber das "a~sflag EQ 'Z' " stand alleine und deshalb hast du mehr als nur 15Zeilen selektiert.

Als kleiner Tip:
In der Mathematik heisst es Punkt vor Strich.
In der Informatik heisst es AND vor OR .

Beitrag von OliverK185 (ForumUser / 2 / 0 / 0 ) »
hi DeathGuardian

Ja habs entdeckt, wie ich das select gerade umschreiben wollte. ursprünglich war die bedingung der select-option: svbeln nicht inkludiert - > da waren dann noch keine klammern notwendig.... dummer fehler,

thx

Seite 1 von 1

Vergleichbare Themen

1
Antw.
4139
Views
Join mit Left Outer Join
von Rude1986 » 17.01.2021 19:53 • Verfasst in ABAP® für Anfänger
8
Antw.
8438
Views
Laufzeitfehler LIST_TOO_MANY_LPROS
von scott111 » 03.05.2006 12:10 • Verfasst in Dialogprogrammierung
2
Antw.
19287
Views
Laufzeitfehler TSV_TNEW_PAGE_ALLOC_FAILED
von kbit100 » 08.05.2008 14:18 • Verfasst in ABAP® für Anfänger
13
Antw.
7238
Views
Laufzeitfehler READ_REPORT_LINE_TOO_LONG
von cuncon » 07.05.2018 15:11 • Verfasst in ABAP® für Anfänger
6
Antw.
8606
Views
Laufzeitfehler - Ursache?
von ralf.wenzel » 18.04.2008 10:29 • 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

Benutzerdefinierte Felder PSP
vor 4 Wochen von Rabea1103 1 / 46282
Spool vereinen OTF und PDF
letzen Monat von anna2205 1 / 62613
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 70174
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 87131