Oracle: indexes - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Oracle: indexes

Description:

Title: PowerPoint Presentation Last modified by: J rg Hakenberg Created Date: 1/1/1601 12:00:00 AM Document presentation format: Bildschirmpr sentation – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 16
Provided by: informatik158
Category:
Tags: indexes | joins | oracle

less

Transcript and Presenter's Notes

Title: Oracle: indexes


1
Indexierung
  • Oracle indexes

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

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

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

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

6
B-tree Index
7
B-tree Index
  • der Standard aller kommerziellen RDBMS

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

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
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

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

13
Function-based Indexes
  • lohnt sich, wenn Anfragen häufig transformierte
    Spalten bzw. Spalten in Ausdrücken enthalten
    (WHERE oder ORDER BY clauses)
  • UPPER, a1a2
  • kann rechenaufwendige Ausdrücke vorhalten
  • .. WHERE ab(c-1) lt 100 ..

14
SQL Statements
  • Index auf eine Spalte
  • 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

15
EXECUTION PLAN
  • CREATE BITMAP INDEX odate ON order(date)
  • EXPLAIN PLAN FOR
  • SELECT FROM order
  • WHERE date 01.02.96
  • SELECT STATEMENT Cost 193
  • TABLE ACCESS BY INDEX ROWID ORDER
  • BITMAP CONVERSION TO ROWIDS
  • BITMAP INDEX SINGLE VALUE ODATE
Write a Comment
User Comments (0)
About PowerShow.com