Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE

Beitrag von roman1983 (ForumUser / 7 / 0 / 0 ) »
Hallo,

ich frage mich, welche Variante eine bessere Performance hat, wenn ich lediglich einen einzigen Datensatz aus der Datenbank auslesen möchte.

a) SELECT ... UP TO 1 ROWS
b) SELECT SINGLE.


Gruß
Roman

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


Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Da der select single gegenüber der Datenbank
(die solche syntax nicht kennt) zu select up to 1 rows
übersetzt wird sind beide varianten identisch.

Gruss
Daniel

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

im Coding zeigt der Select up to x rows an, daß die Ergebnismenge mehr als 1 Satz hat, und man ggf. die x ersten oder letzten Datensätze haben will.

Im Allgemeinen kann man sich eine Optimierung auf Befehlsebene in ABAP sparen. (Einzig die Angabe von Schlüsselfeldern beim Select hat Einfluß auf die Wahl von Sekundärindices!)

Der Compiler und der "Absetzer für Datenbankbefehle" optimieren den Code radikal.
(Es glaubt doch kein Mensch, daß bei "Betrag*-1" zum Umdrehen des Vorzeichens wirklich auf Prozessorebene multipliziert wird.
Irgendein Optimizer macht daraus "0-Betrag" und vereinfacht das auf eine Addition und Subtraktion, die viel schneller ist.

Also keine extra Schleifen programmieren, aber auch nicht zuviel nachdenken.

Wenn ich lese: "Select single * from ..." weiß ich genau, daß nur ein einziger Satz vom Programmierer oder von der Anwendung erwartet wurde. Das hilft!

Gruß
babap

Re: Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
roman1983 hat geschrieben:Hallo,

ich frage mich, welche Variante eine bessere Performance hat, wenn ich lediglich einen einzigen Datensatz aus der Datenbank auslesen möchte.

a) SELECT ... UP TO 1 ROWS
b) SELECT SINGLE.

Gruß
Roman
Beides gleichschnell!

Aber man kann die 2 gut verwenden um mehrere Sachen zu Zeigen.

Ich machs zum Beispiel so:
SINGLE: wenn ich die Schlüsselfelder habe und genau diesen Satz will
UP TO 1 ROWS: wenn ich irgendeinen Satz haben will und genau weis, das die Wherebedingung mehrere bringen könnte.(Sprich ohne KEY-Felder)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
babap hat geschrieben:...

Also keine extra Schleifen programmieren, aber auch nicht zuviel nachdenken.

Wenn ich lese: "Select single * from ..." weiß ich genau, daß nur ein einziger Satz vom Programmierer oder von der Anwendung erwartet wurde. Das hilft!

Gruß
babap
wird Dir dann aber von der erweiterten Prüfung als Warnung angemerkt.

Daher ist SELECT UP TO n ROWS m.M. korrekter, da hierbei auch dokumentiert wird, dass man weiß, dass die Ergebnismenge mehr als einen Eintrag haben kann und das einem das egal ist...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

8
Antw.
2122
Views
SELECT SINGLE oder SELECT UP TO 1 ROWS?
von nickname8 » 12.04.2021 10:38 • Verfasst in ABAP® für Anfänger
5
Antw.
2353
Views
Performanceproblem mit SELECT SINGLE
von Andreas G » 10.05.2006 15:01 • Verfasst in ABAP® Core
4
Antw.
237
Views
Performance select
von A6272 » 19.09.2022 10:44 • Verfasst in ABAP® für Anfänger
3
Antw.
2053
Views
Performance Select
von derMartin » 14.08.2008 13:58 • Verfasst in ABAP® für Anfänger
7
Antw.
5369
Views
SELECT Performance erhöhen
von ostpower » 02.08.2011 11:57 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140