Partitionierung Indizes und Statistiken

Ähnliche Dokumente
Partitionierung Indizes und Statistiken

Partitioning Technik und Anwendungsbeispiele

Warum wird mein Index nicht benutzt?

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

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

einfach. gut. beraten. Stabilisierung von Ausführungsplänen Baselines DOAG Konferenz + Ausstellung 2017 Nürnberg Klaus Reimers

Datenbankstatistiken im Griff mit DBMS_STATS. DOAG 2012 Konferenz + Ausstellung Nürnberg 21. November 2012

Partitioning mit Oracle Text 9i

Partitioning in der Datenbank 12c: Was ist neu?

Statistikberechnung in großen Datenbanken mit regelmäßigen Ladevorgängen

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

Performance in der Oracle Datenbank von Anfang an

Tuning the Mobile Server

Indexstrategien im Data Warehouse

Partitionierung im DWH mit ORACLE 11g und 12c

Statistiken unter Oracle9i Voraussetzung für effiziente SQL-Statements

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

! Partitionieren Sie Ihr Data Warehouse?

Oracle 9i Einführung Performance Tuning

Oracle Statistiken Ein Mythos in der Datenbank?

Optimizer Statistiken und Adaptive Features in 12.2

Wie die Datenbank ILM unterstützt

Methoden zum Befüllen von SCD2

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

Kerberos und das Oracle Die Nutzung von Kerberos in einer Solaris-Oracle-Umgebung

Partitionierung für mehr Performance

10 Gründe warum Ihr Index nicht verwendet wird

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

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

PostgreSQL Ein Überblick

Datenbankstatistiken im Griff mit DBMS_STATS

Aufbau einer Oracle Datenbank

Performance Tuning mit Oracle 12c

mit konventionellen Datenbanksystemen konventionellen Datenbanksystemen

MySQL Architektur die Admin-Sicht

Partitionierungsstrategien für Data Vault

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

DOAG Datenbank Partitioning für OLTP Applikationstuning mal anders. Düsseldorf, , M. Griesel. Paragon Data GmbH Seite 1

ZWISCHEN ALBTRAUM UND OPTIMALER PERFORMANCE

Row Chaining & Row Migration Alte Bekannte - immer noch aktuell! DOAG 2014 Datenbank Dierk Lenz

Oracle Tuning - Theorie und Interpretation

Performanter Aufbau von Materialized Views im ETL-Prozess Vorgehen und ein Framework für den OWB. Reinhard Mense Geschäftsführer ARETO Consulting

Neue Features Oracle Database 12.2 Wann denn endlich?

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Relationales Datenbanksystem Oracle

Nutzung der Oracle Database InMemory Option für SAP BW

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Physische Datenbankdefinition in. Arthur Bauer

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

DOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

MySQL 5.1. Kristian Köhntopp

Oracle Datenbankadministration Aufbau

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Migration der Daten eines CRS-Mandanten von Kunde zu Kunde

Speicherung und Verarbeitung von Geodaten mit Oracle Spatial

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Oracle 10g Einführung

DOAG Index Tuning

Objektorientierung in Oracle

INDEXIERUNGS- STRATEGIE IM DATA WAREHOUSE

Oracle-Statistiken im Data Warehouse effizient nutzen

DOAG Konferenz + Ausstellung 2017 Nürnberg Michael Skowasch

IBM Informix Tuning und Monitoring

Materialized Views Praktischer Einsatz vor und in 12c

Automatisierte Datenmigration mit dynamischen SQL

Oracle Database 11gR2 Effiziente Datenspeicherung. Vorteile von Komprimierung

DBMS_METADATA und DBMS_METADATA_DIFF im Praxiseinsatz

Exadata und In-Memory Datenbewirtschaftung und Analyse Extrem mit Exadata und InMemory (Erfahrungsbericht)

Von der Datenbank zum LDAP-Server schnell und einfach mit Oracle Virtual Directory. DOAG Konferenz Nürnberg

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

Partitionieren über Rechnergrenzen hinweg

Erzeugung und Veränderung von Tabellen

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

Tabellen und Indizes Reorganisieren, aber wann?

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe

Daten- Historisierung. im DWH. Dr. Kurt Franke debitel AG. Historisierung.

Transkript:

Partitionierung Indizes und Statistiken DOAG Konferenz + Ausstellung 18.11.2014 Nürnberg Klaus Reimers info@ordix.de www.ordix.de

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 1

Arten der Partitionierung Hauptverfahren Range (seit Oracle 8.0) Hash (seit Oracle 8.1) List (seit Oracle 9.0) System (seit Oracle 11.1) Composite Partitioning (seit Oracle 8.1) erweiterte Verfahren (seit Oracle 11.1) Interval (verfügbar mit Range) REF (verfügbar mit Range, Hash, List) Virtual Column Based (verfügbar mit Range, Hash, List) diverse Erweiterungen - vor allem Maintenance (Oracle 12c) Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 2

Arten der Partitionierung Range Partitioning Partitionsgrenze durch die Klausel VALUES LESS THAN häufig für Partitionierung nach Datum im sogenannten Roll-In/Roll-Out-Verfahren < 1997 < 2000 < 2003 < 2007 < MAXVALUE Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 3

Arten der Partitionierung Hash Partitioning Datenverteilung aufgrund Oracle-interner Hash-Funktion kein logischer Zusammenhang der Daten einer Partition Oracle-interne Hash-Funktion P1 P2 P3 P4 Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 4

Arten der Partitionierung List Partitioning Einordnung in Partitionen aufgrund von Wertelisten Wertelisten entsprechen der Logik der Applikation P_NRW P_HH P_BERLIN P_BAYERN Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 5

Arten der Partitionierung System Partitioning Einschränkung auf Partitionen kann nur durch Applikation erfolgen Datenbank kann keine Aussage zu den Inhalten der Partition treffen mit System ist hier also die Applikation gemeint P_POST P_POSTBANK P_DHL P_SCHENKER Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 6

Arten der Partitionierung Composite Partitioning Spaltenliste zweite erste Range List Hash Range (Intervall) List Hash Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 7

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 8

Fragestellungen (von Kunden / aus Projekten) Indizes Welche Indextypen gibt es? Wann verwendet man lokale, wann globale Indizes? Was ist der Unterschied zwischen prefixed und nonprefixed? Sind global hash partitioned Indizes sinnvoll einsetzbar? Sind Indizes wartungsfrei? Kann man Indizes (teilweise) weg schalten? Statistiken Brauche ich aktuelle Statistiken? Müssen die Statistiken immer komplett erstellt werden? Was bedeuten die einzelnen Preferences (dbms_stats)? Benötigen ich Histogramme (auf allen Ebenen)? Was mache ich, wenn das Wartungsfenster zur Erstellung der Statistiken zu klein ist? Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 9

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 10

Partitionierte Indizes - Indextypen Oracle unterstützt folgende Indextypen Tabelle Index Global Non-Partitioned Indexes Global Prefixed Indexes Local Prefixed Indexes Local Non-Prefixed Indexes Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 11

Indextypen Global Indexes wird mit Attribut GLOBAL angelegt Angabe von MAXVALUE zwingend CREATE TABLE verkauf (rechnungsnr NUMBER, woche number(2) NOT NULL) PARTITION BY RANGE (woche) (PARTITION verkauf_1 VALUES LESS THAN (18), (PARTITION verkauf_2 VALUES LESS THAN (36), PARTITION verkauf_3 VALUES LESS THAN (53)); CREATE INDEX verkauf_idx ON verkauf(woche, rechnungsnr) GLOBAL PARTITION BY RANGE (woche) (PARTITION verkauf_i1 VALUES LESS THAN (26), PARTITION verkauf_i2 VALUES LESS THAN (MAXVALUE)); Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 12

Indextypen Global Hash Partitioned Index zur Vermeidung von HOT BLOCKS CREATE TABLE verkauf (rechnungsnr NUMBER, woche number(2) NOT NULL) PARTITION BY RANGE (woche) (PARTITION verkauf_1 VALUES LESS THAN (18), (PARTITION verkauf_2 VALUES LESS THAN (36), PARTITION verkauf_3 VALUES LESS THAN (53)); CREATE INDEX verkauf_idx ON verkauf(woche) GLOBAL PARTITION BY HASH(woche) PARTITIONS 8; Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 13

Indextypen Local Indexes wird mit Attribut LOCAL angelegt equi-partitioned CREATE TABLE verkauf (rechnungsnr NUMBER, woche number(2) NOT NULL) PARTITION BY RANGE (woche) (PARTITION verkauf_1 VALUES LESS THAN (26), PARTITION verkauf_2 VALUES LESS THAN (53)); CREATE INDEX verkauf_idx ON verkauf(woche, rechnungsnr) LOCAL; Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 14

Indextypen Prefixed Index / Non-Prefixed Index CREATE TABLE verkauf ( rechnungsnr NUMBER, woche NUMBER(2) NOT NULL PARTITION BY RANGE (woche) (PARTITION verkauf_1 VALUES LESS THAN (26), PARTITION verkauf_1 VALUES LESS THAN (53) ); Prefixed Index: Partition-Key-Spalten sind im Index enthalten (ideal führend) CREATE INDEX verkauf_idx ON verkauf(woche) LOCAL; Non-Prefixed Index: Partition-Key-Spalten sind nicht im Index enthalten CREATE INDEX verkauf_idx ON verkauf(rechnungsnr) LOCAL; Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 15

Indexformen in der partitionierten Welt Normaler Index auf allen Ebenen verwendbar Function Based Index auf allen Ebenen verwendbar Reverse Index auf allen Ebenen verwendbar Bitmap (Join) Index nur LOCAL verwendbar Text Index nur auf RANGE-partitionierten Tabellen verwendbar Spatial Index nur auf RANGE-partitionierten Tabellen verwendbar Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 16

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 17

Global Index Maintenance < Oracle 12c Globale Indizes werden bei 3-Step-Operationen invalide split / merge / move / drop / truncate konnte mit UPDATE INDEXES umgangen werden ab Oracle 12c drop und truncate partition kann beschleunigt werden Angabe von UPDATE INDEXES dann zwingend notwendig nur die Metadaten werden noch angepasst tatsächliche Indexpflege dann asynchron Ausführungsplan auch ohne Indexnachpflege ok Index muss nachgepflegt werden manuell automatisch Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 18

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 19

Segmentlose Unusable Indizes & Index Partitionen Keine unnötigen Informationen sollen den Speicherplatz verschwenden! Segmentlose Unusable Indizes einzelne Unusable Indizes(-Partitionen) verbrauchen keinen Speicherplatz sinnvoll für Datenbereiche, die üblicherweise nicht mehr benutzt werden! ALTER INDEX <idx_name> MODIFY PARTITION <part_name> UNUSABLE; Große Ersparnis beim Indexstorage Vorteile bei Massenladevorgängen Buchungstabelle 476.240.517 Rows JAN-10 FEB-10 MAR-10 APR-10 MAY-10 UI UI I I I Partition Scan Index Scan Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 20

Partial Indexing Indizes betreffen nur einige Partitionen nutzbar für lokale und globale Indizes wird gesteuert INDEXING ON OFF PARTIAL mehr Freiheit bei der Definition Einsparung von Speicherplatz bessere Auslastung des Caches Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 21

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 22

Empfehlungen idealerweise lokale Indizes verwenden Globale Indizes dann, wenn Uniqueness gefordert ist Global Hash Partitioned Index zur Vermeidung von Hot Blocks Ausnutzung des Prunings Verfahren so optimieren, dass möglichst keine Wartungsfenster erforderlich sind Maintenance-Window online ist praxistaugliche Erweiterungen in Oracle 12c verwenden Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 23

Agenda Einführung Arten der Partitionierung Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 24

Statistiken dbms_stats Auf welcher Ebene sollen Statistiken gesammelt werden? Parameter: granularity BEGIN dbms_stats.gather_table_stats ( ownname => 'SCOTT', tabname => 'EMP', estimate_percent => 30, method_opt => 'FOR ALL COLUMNS SIZE 64', degree => 32, granularity => 'AUTO', cascade => 'TRUE' ); END; / Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 25

Statistiken Granularity AUTO ALL GLOBAL GLOBAL AND PARTITION PARTITION SUBPARTITION (X) X X X KONTOAUSZUEGE Table (X) X X X P_1995 P_2014 P_2015 Partition (X) X X Subpartition Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 26

Preference INCREMENTAL Die Granularität AUTO führt dazu, dass alle Partitionen einer Tabelle gelesen werden, um globale Statistiken zu erzeugen. Wenn alte Partitionen unverändert sind, ist das in der Regel nicht notwendig. Keine inkrementelle Pflege von Histogrammen globalen Statistiken BEGIN dbms_stats.set_table_prefs( ownname => user, tabname => 'tab', pname => 'INCREMENTAL', pvalue => 'TRUE' ); dbms_stats.gather_table_stats( user, 'tab', granularity=>'auto'); END; / Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 27

Preference INCREMENTAL_STALENESS Definition der Staleness von Partitionen use_stale_percent use_locked_stats null BEGIN dbms_stats.set_table_prefs( ownname => user, tabname => 'tab', pname => 'INCREMENTAL_STALENESS', pvalue => 'use_stale_percent' ); dbms_stats.gather_table_stats( user, 'tab', granularity=>'auto'); END; / Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 28

Global_Stats Global_Stats YES Statistiken sind berechnet worden Histogramme liegen vor NO globale Statistiken werden nur kumuliert keine Histogramme keine Statistiken auf globalen Indizes Vorgehensweise nicht definierbar Ergibt sich aus der Art der Statistiksammlung Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 29

Agenda Einführung Überblick Techniken Fragestellungen Indizes Indextypen (global / local / prefixed / hash) Maintenance Unusable Index Empfehlungen Statistiken dbms_stats / Preferences Empfehlungen Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 30

Empfehlungen Zeitdauer im Auge behalten (Maintenance-Window) INCREMENTAL ist je nach Oracle-Version problematisch GLOBAL_STATS = NO ist sinnvoll wenn keine globalen Histogramme notwendig sind Statistiken bei extrem großen Tabellen manuell setzen Statistiken bei Bedarf einfrieren Partitionierung - Indizes und Statistiken, Klaus Reimers, DOAG 2014 31

Zentrale Paderborn Westernmauer 12-16 33098 Paderborn Tel.: 05251 1063-0 Seminarzentrum Wiesbaden Kreuzberger Ring 13 65205 Wiesbaden Tel.: 0611 77840-00 Zentrales Fax: 0180 1 67349 0 0180 1 ORDIX 0 Weitere Geschäftsstellen in Köln, Münster und Neu-Ulm E-Mail: info@ordix.de Internet: http://www.ordix.de Vielen Dank für Ihre Aufmerksamkeit!