Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren



Ähnliche Dokumente
Oracle 9i Einführung Performance Tuning

Physische Datenbankdefinition in. Arthur Bauer

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 8 Indizes. Universität Hannover. Installation. Index-Typen. Anhang.

Performance in der Oracle Datenbank von Anfang an

Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs

Ich liebe es, wenn ein Plan funktioniert

Indexing und Performance Tuning

Oracle: Abstrakte Datentypen:

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle 9i Einführung Performance Tuning

RBO und CBO. Ralph Urban Application Development Trivadis GmbH

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Automatisierung von Tabellen- und Index-Reorganisationen

SQL Performance - Tips Do's & Don'ts

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

DBS: Administration und Implementierung Klausur

Bibliografische Informationen digitalisiert durch

SQL. Fortgeschrittene Konzepte Auszug

Views in SQL. 2 Anlegen und Verwenden von Views 2

SQL (Structured Query Language) Schemata Datentypen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

IV. Datenbankmanagement

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Ausführungspläne, Hints, Zugriffs- und Join-Methoden

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

MIN oder MAX Bildung per B*Tree Index Hint

SQL Optimizer und SQL Performance

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Tuning. Edo Bezemer. Author

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Index Rebuild. DOAG Konferenz , Nürnberg. Martin Hoermann

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Index Rebuild. DOAG Konferenz , Nürnberg DOAG Konferenz , Nürnberg Martin Hoermann Martin Hoermann

PostgreSQL Wartungsstrategien

Referenzielle Integrität SQL

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL structured query language

DOAG Index Tuning

SQL: statische Integrität

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Einstieg in das SQL- und Datenbanktuning Loblied auf den Tabellen-Index!

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Oracle Indexing Primer

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Fachhochschule Deggendorf Platzziffer:...

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

IBM Informix Tuning und Monitoring

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Warum wird mein Index nicht benutzt?

Art der Info: Technische Background Info Teil 2 (April 2002)

7. Übung - Datenbanken

Beispiel 1: Filmdatenbank

Well-Balanced. Performance Tuning

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

DOAG Regionaltreffen TABLE REORG. Klaus Reimers. Leiter Beratung & Entwicklung, ORDIX AG, Paderborn

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Informatik 12 Datenbanken SQL-Einführung

PostgreSQL in großen Installationen

MySQL Installation. AnPr

Data Quality Management: Abgleich großer, redundanter Datenmengen

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Automatisierte Datenmigration mit dynamischen SQL

Sortierte Folgen 250

Tag 4 Inhaltsverzeichnis

Labor 3 - Datenbank mit MySQL

How to install freesshd

Partitionieren über Rechnergrenzen hinweg

Oracle 9i Einführung. Performance Tuning. Kurs. Teil 9 Sortiervorgänge. Universität Hannover. Sortiervorgänge. Migration. Konfiguration.

MySQL 101 Wie man einen MySQL-Server am besten absichert

Enrico Genauck IN04

Johannes Ahrends Geschäftsführer CarajanDB GmbH CarajanDB GmbH

Cassandra Query Language (CQL)

Datenbanken für Online Untersuchungen

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Kostenstellen

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Performance Tuning mit Oracle 12c

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index

Datenbanken Implementierungstechniken SS2015

Archive / Backup System für OpenVMS

Datenbanktuning am Beispiel von Oracle 10g

Erstellen einer Datenbank. Datenbankabfragen

Professionelle Seminare im Bereich MS-Office

Web2Lead. Konfiguration

Backup and Recovery. Der Abschnitt beschreibt Vorgehensweisen zur Sicherung und Wiederherstellung der Daten mit Applikationsmitteln.

Transkript:

Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung: Varianten der Zugriffspfade Tabellensegment (Standard-Variante) unsortierte Liste neue Sätze werden angehängt Full Table Scan Index-Cluster Gruppierung einer oder mehrerer Tab. nach Key-Wert (z.b. KDNR) Cluster Scan Hash-Cluster Gruppierung einer Tabelle nach Hash-Funktionswert (z.b. Kontenkreis) Hash Scan nur für "statische" Tabellen

) Speicherplatz-Zuordnung und -Verwaltung.2) Speicherplatz-Zuordnung: Die Storage-Klausel create table tabname storage (initial m next 0k pctincrease 0) as select... DEFAULT MINIMUM INITIAL: Größe des. Extents (wird bei create <object> angelegt) 5*DB_BLOCK_SIZE* 5*DB_BLOCK_SIZE NEXT: Größe des nächsten anzulegenden Extents n, n >=2 : 5*DB_BLOCK_SIZE 2*DB_BLOCK_SIZE Es gilt: NEXT(n+) = NEXT(n)*( + PCTINCREASE / 00) (gerundet auf Blockgröße) PCTINCREASE: Wachtumsrate der Extents 0 0 MINEXTENTS: Anzahl, der beim Create bereits anzulegenden Extents (incl. INITIAL) MAXEXTENTS: Zulässige Maximalzahl von Extents 2E+09 ZIEL: Möglichst wenige Extents *Datawarehouse: DB_BLOCK_SIZE = 8K y:\or\user\obst\extents.sql: y:\or\user\obst\bytes.sql: y:\or\user\obst\freespac.sql: y:\or\user\obst\blocks.sql: Anzeige der Größe der Extents (aus USER_EXTENTS) Anzeige der Größe aller User-Objekte (aus USER_SEGMENTS) Anzeige des freien (zusammenh.) Speicherplatzes pro Tablespace Anzeige der wirklich benutzten Blöcke einer Tabelle

) Speicherplatz-Zuordnung und -Verwaltung.3) Speicherplatz-Verwaltung create table tabname tablespace fb_dwh_users pctfree 0 pctused 99 unrecoverable storage (...) as select... PCTFREE: definiert Pufferbereich für Updates Default: 0 Block-Header für UPDATES vorbehalten INSERT-Obergrenze 00 00 - PCTFREE PCTUSED: definiert den anzustreb. Mindestfüllgrad Default: 40 Falls Füllgrad unter PCTUSED fällt, erneut für INSERTs heranziehen. PCTUSED TABLESPACE: definiert den Speicherort Default: USERS Statische Tabellen: 0 PCTFREE 0 PCTUSED 99 RECOVERABLE/UNRECOVERABLE: Soll in Redologdateien protokolliert werden?

2) Indizes 2.) Überblick create [unique] index name on tabelle(var, var2,...) [noparallel/parallel(degree integer)]; Unterstützung des Full Table Scans Suche eines Key-Wertes (auch mehrstufig) in einem B*-Baum Bei Inserts und Updates wird Index gepflegt (wird autom. 'ausbalanciert') Storage-Klausel wie bei CREATE TABLE (PCTUSED nicht!) Anzeige des Index: Tabelle ALL_IND_COLUMNS y:\or\user\obst \dwh\index.sql Beschreibung des Index: ANALYZE INDEX / VALIDATE INDEX Parallelisieren des CREATE INDEX möglich

2) Indizes 2.2) Die B*-Baum-Struktur Treepointer (max. 4 Baum 4. Ordnung) Level 0 (Root) 7 Internal Nodes / 'Index Set' Index Level 2 5 9 3 Level 2 2 P P2 3 4 P3 P4 6 7 P6 P7 8 9 P8 P9 0 P0 P 4 5 P3 P4 Leaves / 'Sequence Set' 5 P5 3 P2 P,...,P4 (Datenpointer) Mindestens zu 50% gefüllt Daten

3) Explain Plan explain plan [into schema.plan_table] for select p.*, a.qwagat_wgt_nr from q_bestell_pos p,q_angebots_einh a where p.qae_stamm_bestell_nr = a.stamm_best_nr and p.qae_vers_nr = a.vers_nr; y:\or\user\obst\plan.sql (select... from plan_table): OPERATION OPTIONS OBJECT_NAME TYPE ID PARENT_ID POSITION OPTIMIZER -------------------- ------------ -------------------- ---------- --- --------- --------- ---------- SELECT STATEMENT 0 RULE NESTED LOOPS 0 TABLE ACCESS FULL Q_BESTELL_POS 2 ANALYZED TABLE ACCESS BY ROWID Q_ANGEBOTS_EINH 3 2 ANALYZED INDEX UNIQUE QAE_PK UNIQUE 4 3 ANALYZED y:\or\user\obst\explain.sql* (...CONNECT BY PRIOR id = parent_id...): Query Plan ------------------------------------------------------------ SELECT STATEMENT Optimizer = RULE Cost = NESTED LOOPS TABLE ACCESS FULL Q_BESTELL_POS (ANALYZED) TABLE ACCESS BY ROWID Q_ANGEBOTS_EINH (ANALYZED) INDEX UNIQUE QAE_PK (ANALYZED) *) In der Script muß das Schema (hier: ZUO03C) an den jeweiligen Benutzer angepaßt werden.

4) Join-Operationen Hash-Join n 3 A Nested-Loop B 4 2 m n HASH A HASH 2 n Merge-Join A B m maximal n*m Daten-Zugriffe (mit jedem Satz aus Tabelle A, komplett durch Tabelle B - eventuell Index-unterstützt) B m Sort Sort n+m Daten-Zugriffe (Kleinere Tabelle A sortiert in Hash-Area, mit jedem Satz aus Tabelle B in der entspr. Hash-Area suchen) n+m Daten-Zugriffe Tabellen A, B sortieren (Sort_Area). Abgleich mit Satzzeiger.

5) Der Optimizer 5.) Grundlagen Rang 2 3 4 5 6 7 8 9 0 2 3 4 5 regelbasiert jeder mögliche Ausführungsplan ist mit einem Rankingwert verbunden, der minimiert wird. Zugriffspfad Single row by ROWID Single row by cluster join Single row by hash cluster key with unique or primary key Single row by unique or primary key Cluster join Hash cluster key Indexed cluster key Composite index Single-column indexes Bounded range search on indexed columns Unbounded range search on indexed columns Sort-merge join MAX or MIN of indexed columns ORDER BY on indexed columns Full table scan statistikbasiert Tabellen sollten analysiert sein ( ANALYZE) die Selektivität einer WHERE-Bed. entscheidet, dafür muß idealerweise die Werteverteilung bekannt sein (Spalten-HISTOGRAMM),,...,,,...,,,...,,2,...,20 2,...,40 95,...,000 BUCKET BUCKET 2 BUCKET 50 BUCKET 5 BUCKET 52 BUCKET 00 WHERE- PRÄDIKAT bis ORACLE 7.2 geschätzte Selektivität Spalte = 0, % INDEX Spalte = 20 0, % INDEX Spalte <=20 2 % INDEX ab ORACLE 7.3 geschätzte Selektivität Zugriffspfad Zugriffspfad ~50 % TABLE FULL < % INDEX ~5 % FULL TABLE

5) Der Optimizer 5.2) Optimizer-Hints... select /*+ optimizer-hints */... HINT RULE CHOOSE ALL_ROWS FIRST_ROWS FULL (table) INDEX (index) ORDERED USE_NL (tab,tab2...) USE_MERGE (tab,tab2,...) USE_HASH (tab,tab2,...) PARALLEL (tab,degree) NOPARALLEL tabi = Tabellen-Alias-Name! Erläuterung regelbasierter Ausführungsplan (AP) wähle zwischen regelb. und statistikb. AP statistikb. AP mit Ziel optimale Gesamtlaufzeit statistikb. AP mit Ziel schnellste Rückgabe der ersten Ergebniszeile Full Table Scan Tabellenzugriff über Index Forciert Tabellenzugriff (bei Joins) gemäß der Reihenfolge in der FROM-Klausel Verwendung von Nested-Loop-Operationen Verwendung von Sort-Merge-Join-Operationen Verwendung von Hash-Join-Operationen Spezifiziert die Parallelisierung der Abarbeitung Verhindert Parallelisierung der Abarbeitung Achtung! Bei Tippfehlern wird der gesamte Hint ignoriert!

6) Parallelisieren SELECT /*+ PARALLEL(e,degree) */ * FROM emp e ORDER BY ename; Es werden mind. degree EXTENTS angelegt! 2*degree Query-Server A-G EMP Table USER PROCESS QUERY COORDINATOR H-M N-S T-Z Nur 2 Operationen können simultan parallelisiert werden parallel-to-serial parallel-to-parallel parallel-from-serial