Performance Select


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Performance Select

Beitragvon derMartin » 14.08.2008, 12:58

Hi,

eine kurze Frage. Welcher Select ist performanter. Es sollen nur eine gewisse Anzahl Spalten in die dafür zuvor angelegte interne Struktur /Tabelle gelesen werden.

Code: Alles auswählen
SELECT *
            FROM BSEG
           INTO CORRESPONDING FIELDS OF TABLE zlt_bseg
 


oder

Code: Alles auswählen
SELECT mandt, bukrs, belnr,gjahr, buzei
            FROM BSEG
           INTO CORRESPONDING FIELDS OF TABLE zlt_bseg
 


WHERE Bedinungen hab ich jetzt mal absichtlich weggelassen.

Thx

Martin[/code]
derMartin
ForumUser
 
Beiträge: 5
Registriert: 10.08.2008, 21:10
Dank erhalten: 0 mal

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Performance Select

Beitragvon ralf.wenzel » 14.08.2008, 13:32

Natürlich der zweite. Noch besser ist es, wenn du das "corresponding fields" weg lässt und stattdessen die Struktur der Ziel-itab entsprechend gestaltest.

Ralf

EDIT: Ich korrigiere mich, der erste Aufruf ist besser, weil im zweiten eine Reihe von Syntaxfehlern sind *scnr
Zuletzt geändert von ralf.wenzel am 14.08.2008, 13:54, insgesamt 1-mal geändert.
ralf.wenzel
Top Expert
 
Beiträge: 3233
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 187 mal
Ich bin: Freiberufler/in

Beitragvon babap » 14.08.2008, 13:46

Hallo,

wäre mal interessant zu wissen, ob aus dem etwas "programmierfreundlicheren" Statement im Endeffekt nicht sogar der gleiche DB-Aufruf dabei herauskommt.

Gruß
babaß
babap
Expert
 
Beiträge: 680
Registriert: 05.02.2004, 15:12
Dank erhalten: 1 mal

Beitragvon GastX » 14.08.2008, 15:29

Was mir fehlt, ist die Definition der Tabelle zlt_bseg. Enthält sie aus der Tabelle bseg exakt die Felder mandt, bukrs, belnr, gjahr und buzei?

Denn wenn nicht, dann würden die beiden Selects unterschiedliche Ergebnisse liefern und defnitiv auch unterschiedlichen Zeitbedarf haben.

Enthält die Tabelle zlt_bseg dagegen wirklich nur die im zweiten Select genannten Spalten, nimmt sich das letztlich nichts:

Lässt man beide Versionen in der SE80 unter "Umfeld->Beispiele->Performance-Beispiele" gegeneinanderlaufen, scheint die "*"-Version ein wenig langsamer zu sein (wahrscheinlich minimal mehr Aufwand beim Erzeugen des DB-Aufruf, oder was meint Ihr?).
Baut man sie jeweils in einen Report und lässt den Trace (ST05) mitlaufen, so sieht es wie von babap vermutet nach dem gleichen DB-Aufruf aus.

Gruß, Frank
GastX
Specialist
 
Beiträge: 265
Registriert: 26.07.2004, 08:45
Wohnort: Detmold
Dank erhalten: 10 mal
Ich bin: Berater/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Keine Ausgabe von 0,00 bei Beträgen
vor 15 Stunden von msfox 0 Antw.
gelöst Dynamischer Methodenaufruf mit dynamischer Tabelle
vor 18 Stunden von mark.thk 2 Antw.
Viele IDocs ohne Bestätigung per RFC
vor 20 Stunden von gs3rr4 0 Antw.
PDF Originale aus Kpro im Webbrowser anzeigen lassen
Gestern von DanielFulda 0 Antw.
Workflow: Bearbeiterfindung für Workitem wiederholen
vor 2 Tagen von DeathAndPain 0 Antw.

  Ähnliche Beiträge beta
Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE
04.09.2008, 16:13 von ereglam 4 Antw.
SELECT Performance erhöhen
04.08.2011, 14:34 von ralf.wenzel 7 Antw.
SQL und Performance
24.11.2005, 09:04 von Andreas G 2 Antw.
Performance von INE vs. EEQ
22.08.2013, 10:40 von black_adept 3 Antw.
Performance
02.04.2018, 08:49 von gtoXX 3 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder