Indexierung Oracle: indexes 21.09.2018 Indexierung.

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
SQL als Abfragesprache
SQL als Abfragesprache
MySQL Der Einstieg.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Übung Datenbanksysteme SQL-Anfragen (2)
Aufgabe April 2004Übung Data Warehousing2 1: Accounts 'gruppe ' auf ' morawetz ' (IP: !) Oracle-Account gleichen Namens SQL*Plus:
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
objekt-relationale Datenbanken
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
EXPLAIN PLAN - Erste Schritte April 2004EXPLAIN PLAN2 Was fehlt noch? Konkretes Beispiel für einen Plan.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #4 Anfragebearbeitung (Teil 2)
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
Adaption von K-Means Algorithmen an Datenbanken
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Copyright Oracle Corporation, All rights reserved. 6 Unteranfragen (Subqueries)
Freiwillige Feuerwehr der Stadt Perg
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #10 Physische Datenorganisation
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Nichtkonventionelle Indexstrukturen Wave Indices Motivation Techniken Übersicht Update-Techniken Encoded Bitmap Indexing Einführung Datenzugriff über den.
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 28 Version 1.0a Elementare Datenstrukturen –Tables Ansammlung von rows Jede row enthält eine oder mehrere column(s)
Verdichten von Daten mit Gruppenfunktionen
Vorlesung #2 Physische Datenorganisation
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
XQuery 1.0 – Arbeitsweise Mögl. Eingaben Das wird berücksichtigt: Typen von XPath und XML Schema Namensräume, Module Ergebnis: XML-Instanz.
Vorlesung #5 SQL (Teil 2).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Prolog: Datenbanken Inhalt - Überblick - Erstellen einer Datenbank
EXPLAIN PLAN - Erste Schritte -. EXPLAIN PLAN speichert die Abfolge sämtlicher Operationen zur Ausführung eines Statements: – referenzierte Tabellen –
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken abfragen mit SQL
Exotisches SQL Author: Sven Weller.
SQL Basics Schulung –
DOAG SID Data Warehouse
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #10 Physische Datenorganisation
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Wirtschaftsinformatik
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
Oracle Statistiken im HORIZON-Umfeld
(Structured Query Language)
 Präsentation transkript:

Indexierung Oracle: indexes 21.09.2018 Indexierung

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

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

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

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

B-tree Index 21.09.2018 Indexierung

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

Bitmap Index 21.09.2018 Indexierung

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

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

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

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

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) < 100 .. 21.09.2018 Indexierung

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; 21.09.2018 Indexierung

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