Datenbank-Index

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

Datenbank-Index

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
Hallo zusammen,

wie kann man denn rausbekommen, ob bei einer DB-Tabellen-Abfrage ein Index benutzt wird? Hab' mal wieder das Problem, das ein Report viel zu lange braucht und ich möchte nun wissen, ob bei der Abfrage überhaupt auf einen Index zugegriffen wird.

Und gibt es Dinge, die man beachten sollte, damit der Index auch wirklich genutzt wird? So z.B. wie "NOT-Abfragen vermeiden" oder ähnliches...
Gruß,
Charadin

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Transaktion ST05 !
Damit kannst genau schauen welche wege er bei den Select geht.

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo Charadin,

ich zitiere mal aus dem Buch "ABAP Objects":

"Geben Sie in der WHERE-Klausel wenn möglich für alle Felder des Index logische Vergleiche mit dem Gleichheitsoperator (=) an, die mit AND verknüpft sind. Verwenden Sie in der WHERE-Klausel für die Indexfelder nur positive Operatoren wie = statt <> und auch nicht das Sprachelement NOT, da diese nicht durch Indizes unterstützt werden. Wenn Sie nur einen Teil eines Index in der WHERE-Klausel angeben, spielt die Reihenfolge der Indexfelder eine wichtige Rolle. Ein Indexfeld in einer WHERE-Klausel führt im Allgemeinen nur dann zur Auswertung des Index, wenn alle vor ihm in der Indexdefinition liegenden Felder vollständig in der WHERE-Bedingung angegeben sind. Bei der Auswahl und Anwendung eines Index verwertet das System in der Regel keine mit OR verknüpften Operanden, es sei denn, der Operator OR steht in der logischen Bedingung in der höchsten Ebene. Verwenden Sie also beispielsweise:
.. WHERE (CARRID = 'LH' AND CITYFROM = 'FRANKFURT') OR
(CARRID = 'LH' AND CITYFROM = 'NEW YORK'):
statt:
..WHERE carrid = 'LH' AND
(cityfrom = 'FRANKFURT' OR cityfrom = 'NEW YORK').

Fragen Sie keine Indexspalte mit der Bedingung IS NULL ab, da einige Datenbanken diese nicht für Indizes unterstützen.
Große Effizienzgewinne lassen sich erreichen, wenn alle Spalten einer SELECT-Klausel Teil eines Indizes sind, da dann nur der Index gelesen werden muss."

Viele Grüße
Wilfried
Wir sind lustig und haben es gar nicht nötig!

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
Hallo DeathGuardian, hallo Wilfried,

vielen Dank für Eure Antworten, das hilft mir wirklich weiter! :)
Gruß,
Charadin

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1532
Views
Datenbank Index
von A6272 » 28.09.2020 13:45 • Verfasst in ABAP® für Anfänger
0
Antw.
16568
Views
FAQ Index
von Jan » 02.08.2005 08:08 • Verfasst in Tips + Tricks & FAQs
6
Antw.
3288
Views
Index im where Teil
von kaim77 » 10.09.2014 08:54 • Verfasst in ABAP® Core
8
Antw.
2955
Views
Index / Indizes
von Phame » 20.08.2015 13:05 • Verfasst in ABAP® für Anfänger
8
Antw.
2791
Views
Laufvariable / Index
von Lbyte » 27.10.2017 15:50 • 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

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3014
Daten an Tabelle binden
vor 15 Stunden von Lukas Sanders 2 / 984
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 550

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

Dialog-Container mit Toolbar/Status
vor 10 Stunden von DeathAndPain gelöst 22 / 3014
Daten an Tabelle binden
vor 15 Stunden von Lukas Sanders 2 / 984
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 550

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2563
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9143