Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Indexierung Oracle: indexes 21.09.2018 Indexierung.

Ähnliche Präsentationen


Präsentation zum Thema: "Indexierung Oracle: indexes 21.09.2018 Indexierung."—  Präsentation transkript:

1 Indexierung Oracle: indexes Indexierung

2 Prinzip eines Index spezielle Datenstruktur
speichert eine sortierte Werteliste eines oder mehrerer Schlüssel mit Zeigern auf die phys. Adressen der zugehörigen Tupel; Reduktion der Zugriffszeit auf alle Adressen von Tupeln, welche entsprechenden Bedingungen an die Schlüssel gehorchen Indexierung

3 Index auf welche Schlüssel?
Schlüssel: Spalte/Ausdruck, auf dem ein Index erstellte werden kann Faustregeln: Schlüssel indexieren, die häufig in Bedingungen benutzt werden häufig für JOINs benutzt werden eine hohe Selektivität haben selten verändert werden (I/D/U dauern länger) nicht nur in Bedingunen mit Funktionen vorkommen (außer MIN/MAX) Performanz bei Queries vs. bei I/D/U Performanz vs. Platzbedarf Indexierung

4 Zusammengesetzte Schlüssel
Composite Index mehr als eine Schlüssel-Spalte erhöhte Selektivität reduzierter I/O-Bedarf alle selektierten Spalten einer Query in einem Composite Index  kein TableAccess nötig Faustregeln: häufig in Bedingungen zusammen benutzte Schlüssel (AND) (v.a. bei höherer kombinierter Selektivität) überlappende Anfragen auf derselben Menge von Schlüsseln  ein CI Indexierung

5 Arten von Indexen B-tree, B*-tree Index Bitmap Index Bitmap Join Index
Function-based Index Domain Index Multidimensionaler Index Indexierung

6 B-tree Index Indexierung

7 B*-tree Index der Standard aller kommerziellen RDBMS 21.09.2018
Indexierung

8 Bitmap Index Indexierung

9 Vergleich Bitmap Index B*-tree Index
geringe Kardinalität der Attribute statische Daten Queries mit zusammengesetzten Bedingungen (AND/OR) B*-tree Index viele Updates hohe Kardinalität der Attribute Indexierung

10 Wann lohnt sich welche Struktur?
B*-tree Bitmap |A|  0 degenerierte Bäume, größerer Platz geringer Platz; sogar noch Hauptspeicher |A|   geringerer Platz sehr großer Platz Reorganisation effiziente Algorithmen aufwendig; bei INS/DEL in Fakten, neuen Attributen Anfragen: Bedingungen an mehrere A ordnungssensitiv Schnittmengen-bildung: teuer OR/AND-Verknüpfungen: schnelle BitOps Anfragen Punktanfragen, Ad-hoc queries Indexierung

11 Wichtige Aspekte Anzahl und Kardinalität der Prädikate
viele P, geringe K  Bitmap durch einzelne Prädikate selektierte Tupel selektieren gr. Anzahl  Bitmap Anzahl der Tupel der Tabellen viele Tupel  Bitmap Platzbedarf Indexierung

12 B*-tree vs. Bitmap Indexes
Bitmap: oft platzsparender B*-tree: in Abfragen zusammen verwendete Spalten müssen vorher bestimmt werden (für CI) B*-tree ist sortiert: B*-tree auf (a1, a2, a3) nutzlos bei Anfragen nach (a1, a2)  6 CIs nötig! Bitmap: 3 single-column Indexe Indexierung

13 Function-based Indexes
lohnt sich, wenn Anfragen häufig transformierte Spalten bzw. Spalten in Ausdrücken enthalten (WHERE oder ORDER BY clauses) UPPER, a1+a2 kann rechenaufwendige Ausdrücke vorhalten .. WHERE a+b*(c-1) < Indexierung

14 SQL Statements Index auf eine Spalte Composite Index
CREATE INDEX idx1 ON table1(a); CREATE BITMAP INDEX idx2 ON ...; Composite Index CREATE INDEX ci1 ON table1(a1, a2, a3); Function-based Index CREATE INDEX fi1 ON table1(UPPER(a4)); Drop DROP INDEX fi1; Indexierung

15 EXECUTION PLAN CREATE BITMAP INDEX odate ON order(date);
EXPLAIN PLAN FOR SELECT * FROM order WHERE date = ´ ´; SELECT STATEMENT Cost = 193 TABLE ACCESS BY INDEX ROWID ORDER BITMAP CONVERSION TO ROWIDS BITMAP INDEX SINGLE VALUE ODATE Indexierung


Herunterladen ppt "Indexierung Oracle: indexes 21.09.2018 Indexierung."

Ähnliche Präsentationen


Google-Anzeigen