Interpretation Execution Plan for SQL Statement

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

Interpretation Execution Plan for SQL Statement

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
Ich stelle fest, dass ich massive Probleme habe diesen Plan zu durchschauen bei einem simplen Join über VBRK und VBRP, wobei es offenbar auch keine Rolle spielt welche Tabelle die "Primärtabelle" ist.

Code: Alles auswählen.

select vbrk.vbeln, vbrk.fkart, vbrk.erdat, vbrp.posnr, vbrp.matnr, vbrp.fbuda
from vbrp
inner join vbrk on vbrk.vbeln = vbrp.vbeln
where vbrp.matnr = '000000000000004711'
  and vbrp.fbuda between '20190110' and '20190110'
  and vbrk.fkart in ( 'Zxx1', 'Zxx2' )
  and vbrk.erdat between '20190327' and '20200121'
  and vbrk.fksto = ' '
Was man sieht ist:
- eine Baumstruktur
- durchnummerierte Äste, deren Nummerierung/Reihenfolge mir völlig unklar ist
- die Äste haben Bezeichungen wie HASHED JOIN, TABLE ACCESS BY INDEX ROWID VBRK, INDEX SKIP SCAN VBRK~Z06 usw
- die Äste enthalten auch Informationen wie Index-Name und Anzahl der Zeilen

So wie ich es verstehe stellt das einen Analyse- und Ausführungsplan der DB dar wie sie die Daten am schnellsten beschaffen kann. Dafür spricht auch, dass das Ergebnis identisch ist wenn ich VBRK und VBRP als Primärtabelle austausche.
Es geht jedoch mMn nicht klar daraus hervor, welchen Zugriffsweg das System nun angewandt hat (das SQL-Ergebnis ist hier übrigens 1 Satz VBRK -> 1 Satz VBRP).

Frage:
Die SAP-Hilfe dazu bringt alles mögliche nur nicht das was ich brauche. Auch der Explain-Button bringt nur Kraut und Rüben. Gibt es irgendwo eine Doku die die Einzelheiten erklärt/beschreibt?

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


Re: Interpretation Execution Plan for SQL Statement

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
Der Execution-Plan ist abhängig von der eingesetzten Datenbank, daher wird die SAP-Hilfe auf den ersten Blick nicht allzu tief ins Detail gehen. Da musst du schon zusätzlich mit dem Namen der Datenbank danach suchen. Von deinem beschriebenen Aufbau her, würde ich auf Oracle tippen.

Kurze Erklärung:
Die Nummerierung im Baum ist die Reihenfolge in der die Datenbank nach den Informationen sucht. Es wird auch angegeben, welcher Index dafür genutzt wird. Je höher die Zahlen für Estimated Cost, CPU usw. sind, die darunter stehen, desto teurer und schlechter ist der gewählte Zugriffspfad. Die sog. Datenbank-Statistiken beeinflussen diese Zahlen und den daraus entstehenden Zugriffspfad. Desshalb sollte die SAP-Basis stets dafür sorgen, dass die Statistiken "aktuell" sind. Die Angaben HASHED JOIN, TABLE ACCESS BY usw. zielen darauf ab, mit welchen Methoden die Informationen in der Tabelle gesucht werden. HASHED ist, wie wir auch aus ABAP kennen, eine der performantesten Varianten. Ein FULL TABLE SCAN (alle Zeilen der Tabelle vergleichen) sollte hingegen tunlichst vermieden werden. Wenn du sowas hast, solltest du entweder dein Statement umbauen, sodass ein passender Index gezogen wird oder du legst einen eigenen Z-Index auf der DB-Tabelle für deinen Zugriff an. Letzteres sollte wirklich nur als allerletzte Möglichkeit in Betracht gezogen werden und nur zur Anwendung kommen wenn nichts anderes mehr funktioniert und die Abfrage unbedingt in dieser Form benötigt wird.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
deejey

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1368
Views
2
Antw.
6861
Views
About Sapscript Printprogram Execution
von sri_deep » 10.08.2005 19:27 • Verfasst in Development Related
1
Antw.
1371
Views
CO Einzelpostenbericht Plan (KSBP)
von mishak » 06.12.2006 14:10 • Verfasst in Financials
0
Antw.
1134
Views
2
Antw.
2576
Views
Plan oder Fertigungsauftrag simulieren ?
von ratsnus » 31.01.2012 10:41 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 31 Minuten von msfox 18 / 10858
Dialog-Container mit Toolbar/Status
vor 3 Stunden von black_adept gelöst 27 / 3966
IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46

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

Trennen Strasse und Hausnummer
vor 31 Minuten von msfox 18 / 10858
Dialog-Container mit Toolbar/Status
vor 3 Stunden von black_adept gelöst 27 / 3966
IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 4 Stunden von ArjenR 1 / 46
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2977
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9566