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.
945
Views
Datenbank Index
von A6272 » 28.09.2020 13:45 • Verfasst in ABAP® für Anfänger
0
Antw.
15812
Views
FAQ Index
von Jan » 02.08.2005 08:08 • Verfasst in Tips + Tricks & FAQs
6
Antw.
2814
Views
Index im where Teil
von kaim77 » 10.09.2014 08:54 • Verfasst in ABAP® Core
8
Antw.
2587
Views
Index / Indizes
von Phame » 20.08.2015 13:05 • Verfasst in ABAP® für Anfänger
5
Antw.
3540
Views
Index in WHERE - Bedingung
von Gast » 13.10.2004 16:18 • 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

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141