IBM DB2 Qiguang Yan & Stefan Lenschow

Slides:



Advertisements
Ähnliche Präsentationen
PHP Extension und Application Repository
Advertisements

E-Commerce Shop System
Algorithmentheorie 08 – Dynamische Programmierung (1)
Imperative Programmierung
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Rechnernetze und verteilte Systeme (BSRvS II)
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
der Universität Oldenburg
SAP R/3 - Speichermanagement
LEAN –Workshop Programmübersicht TAG 1 - 5
Objektrelationales Mapping mit JPA
Java: Dynamische Datentypen
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Markplätze für Agenten Seminar Softwareagenten Timo Hoelzel.
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Lernende Agenten Seminar Softwareagenten Wintersemester 2001/2002 Norman Neuhaus.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Vortrag im Rahmen der Siegmundsburger Vortragsreihe 2006 zum Thema ASC und Self-Healing gehalten von Robert Fleischer.
Semantische Fehler Seminar im Grundstudium WS2002/2003:
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Was sind Histogramme? (1)
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Dieter Bergmann, Lichtenfels
Einführung MySQL mit PHP
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
ODBC (Open Database Connectivity)
GlobalStorehouseGlobalStorehouse Institut für Modellbildung und Simulation IMS Bemerkung: Mit diesem "MB" und "WBM" lässt sich der ganze Zyklus abdecken.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Java programmieren mit JavaKara
1 Produktive ZDB-Schnittstellen : OAI Bernd Althaus / 10| Produktive ZDB-Schnittstellen: OAI| Althaus | 14. Oktober 2013.
Backup und Recovery sehr großer Datenbanken
EXCEL PROFESSIONAL KURS
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Sesame Florian Mayrhuber
3. Januar 2007 VOLUMES & GENEALOGY: die nächste Generation.
CGI (Common Gateway Interface)
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Transaktion Huang Zhenhao FU Shuai.
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Parallelisierung für Multiprozessor-Maschinen
Structured Query Language
Dokumente meistern Dokumente anlegen Dokumente speichern
Was spricht für EMC für SQL?
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
Query Optimizer in DB2 Leo & POP Learning Optimizer / Progressive Query Optimization.
Aspekte und Werkzeuge der Datenbankadministration und deren Automatisierung Seminarleiter: Prof. Dr. K. Küspert, D. Wiese, G. Rabinovitch Configuration.
Seminar zur Administration von Datenbankmanagementsystemen 8. 6
Niko Zenker1 Besondere Aspekte in Multimedia-Datenbanken Methoden zur iterativen Anfrageverfeinerung (Relevanz Feedback)
KLIMA SUCHT SCHUTZ EINE KAMPAGNE GEFÖRDERT VOM BUNDESUMWELTMINISTERIUM Co2 online.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
Tools für die Datenbankadministration im Bereich Oracle / Produktion.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Umstellung von Team4-Komponenten auf den Standard- Protokoll-Mechanismus von Microsoft SQL Server 2012 Johann Jansen y Alegret Team4 GmbH Seminarvortrag.
Oracle Text bei sehr großen Datenmengen Referent Martin Augst Senior Project / Account Manager Semantec GmbH Benzstr.
Information Retrieval mit Oracle Text Erfahrungsbericht.
LSI8704ELP, LSI8708ELP Allgemeines: – Es müssen immer Festplatten Konfiguriert werden, da ansonsten für das Betriebssystem keine Laufwerke zur Verfügung.
1 Okt, 2015 Kapitel III: Tuningdaten&Dok-zum_Tuning (350_db2_Tuningdaten&docs_des Tunings) IBM DB2 for z/OS.
Application Performance Management Udo Brede.  Komplexe Umgebungen  Häufige Änderungen  Hohe Aktivität Database Servers Application Servers Web Servers.
LSI8204ELP & Onboard SATA Controller Allgemeines: – Nicht konfigurierte Festplatten werden automatisch als Single Disks bzw. Logical Drives (einzelne Laufwerke)
Microsoft Exchange Storage Recovery und Automatic Database Reseed Repariert sich Exchange wirklich alleine?! Herzlich Willkommen zum Webinar Referent:
Reorganisation und Administration großer SAP-DB Manfred Riemer SAP AG (z.B. MCOD-Systeme)
 Präsentation transkript:

IBM DB2 Qiguang Yan & Stefan Lenschow Seminar WS 2006/07: Aktuelle Themen der Datenbankforschung und -entwicklung

Gliederung Self – Healing II. Self – Configuring Health Monitor II. Self – Configuring Configuration Advisor Design Advisor III. Self – Optimizing Self-Tuning Memory POP LEO Zusammenfassung Ausblick / Quellen

I.Self – Healing Features Vorher: DBA betreut im Schnitt über 20 Datenbanken 33% Zeit: Monitoring 22% Zeit: auf Probleme reagieren self-healing in DB2 (V8.1) kehrt Diagnosemodell des Gesundheitszustandes der DB um übernimmt Monitoring – Aufgaben DB überwacht sich selbst bietet Problemlösungen + Hilfe

2 Tools : Health Monitor(HM) Health Center Serverseitiges Tool Managed-by-Exeption Modell Überwacht komplettes System während der Ausführung (im Hintergrund) Health Center Dient als GUI - Tool des HM Erweitert Informationen des HM um Lösungsstrategien Zur Veränderung der Einstellungen 3. Überwacht DB2 Database Manager Instanz als auch alle zugewiesenen DBen

DB2 Health Monitor: sammelt Systeminformationen per Snapshot Monitor, was die Systemleistung nur minimal beeinträchtigt nutzt sog. „Health Indicators“ für: Instances Databases Logs Tablespace storage Sorting Package and catalog caches Workspaces Memory Application concurrency Die Indikatoren messen den „Gesundheitszustand“ eines Aspektes des ihm zugeordneten Objekts Vorher musste DBA in best Intervallen SnapMon und EventMon aufrufen und riesige Datenmengen auf Indizien für Probleme durchsuchen

DB2 Health Indikatoren: Zustände: normal attention warning alert ausgelöst, wenn Objektaspekt kritischen Zustand annimmt Kategorien: Schwellwert-basierte Indikatoren, die Statistiken des Verhaltens des Objektes überwachen Zustandsbasierte Indikatoren, die 2 oder mehr eindeutige Zustande überprüfen und damit Aussagen über kritisch oder unkritisch liefern Sammelzustandsbasierte Indikatoren, sind Maße des DB-Levels die angesammelte Zustände ein oder mehrerer Objekte repräsentieren Zustände beschreiben Priorität der Abarbeitung ihrer Probleme Schwellw basiert --z.B. kann man warning / alert Schwellwert für den Speicherplatz eines Tablespaces festlegen Zust.basiert --z.B alarm wenn Instanz ausgefallen ist

Meldet alle Alarminfos dem Journal Sendet diese via Email oder Pager zum DBA Führt vorkonfigurierte Aktionen aus (z.B. Ausführen eines tasks, selbständiges REORG eines tables) Erkennt Situationen/ Veränderungen die Performanceeinbußen nach sich ziehen könnten Mittels Health Center ( Diagnosezentrale in dt. Version ) Web Health Center Command Line Prozessor ( CLP ) APIs lassen sich Informationen des Health Monitors abrufen Healthindikatoren, Kontakte konfigurieren Überblick aller bisherigen Alarme anzeigen Fügt Warnzeichen in alle anderen laufenden DB2 UDB GUI Tools ein – mit Klick sofort zum Health Center wechseln z.B spezielle Healthindikatoren konfigurieren – instance-/global-/object- settings Aber auch default Indik für alle obj einer best Instanz

Health Center (V8.1): Links: Objects Fenster zeigt Objekte und ordnet sie abfallend nach Alarmlevel z.b grüner Diamant – alles normal gelbes Dreieck - Warnung oranger Kreis - attention roter Kreis - Alarm 4 Schaltflächen für Anordnung nach eigener Favourisierung / rechts: Contents Fenster zeigt Warnungen/Alarm usw zu im ObjFenster ausgewähltem Objekt

DB2 Health Center bei Problemen meldet DB2 sich und gibt auch Lösungsvorschläge über den: Recommendation Advisor (RA) seit Ver.8.2 und gegebenes Problem zukünftig zu vermeiden stellt dazu DBA Reihe von Fragen basierend auf Antworten und aktuellem Systemzustand  RA liefert verschiedene Lösungswege Entscheidung bestimmt wie der RA vorgeht RA startet nötige Tools bzw. generiert automatisch Scripts (z.B. Memory Visualizer) Mem Viz um „Gegner“ bei Speicherressourcenkonflikten zu identifizieren

Recommendation Advisor

II. Self – Configuring: Configuration Advisor Das Problem: Fast 150 Konfigurationsparameter in DB2 UDB Anwender wissen nicht: Wie die richtigen Werte gewählt werden Welche möglichen Zusammenhänge zwischen Ihnen bestehen Viele nicht online konfigurierbare Parameter zwang zum Neustart von DB2 um bessere Konfigurationen zu erstellen Aufgabe für erfahrene Spezialisten

Configuration Advisor in DB2 UDB (seit V.8.1) liefert Menge (~36) von Parametereinstellungen zum automatischen Konfigurieren und Tunen der DB2 Umgebung in Bezug auf: Speicherverteilung Parallelität I/O Optimierungen Recovery Kritisch bezügl. Systemperformance, da es Allokation des Speichers für wichtige DB Operationen (Daten Caching, Sorting, Networking) übernimmt

Daten, die ConfigAdv. automatisch erkennt : Systeminfos # CPUs, # HDDs Größe des physikal.Speichers Betriebsystem DB Infos Größe, # Tables, # Indizes # Tablespaces Bufferpool Infos # Bufferpools Name, Größe für jeden Bufferpool

Daten, von User spezifiziert : Antworten zu 7 Fragen: Prozentsatz des Speichers der DBMS zugeordnet wird OLTP vs. Complex Query vs. Mixed Rel. Verhältnis zwischen Recovery  Query Geschwindigkeit Lastprofil (Anzahl von lokalen und entfernten Nutzerverbindungen) Ist Datenbank befüllt oder nicht Isolationsstufe Bufferpoolgröße veränderlich

Jede Systeminformation wird nun mit einem mathematischen Modell kombiniert Basierend auf Expertenheuristiken Ermittelt Trade-Offs zwischen Memory Heaps, Parallelität, Skalierbarkeit die für Menschen schwer zu abstrahieren sind

Selbst-Konfigurations Fähigkeiten erlauben ein Erkennen der Ausführungsumgebung Drei Ausführungsinterfaces : Grafisches Interface ( Teil des DB2 Control Center ) Command Level Interface (Bsp: „db2 autoconfigure using MEM_PERCENT 75 WORKLOAD_TYPE complex IS_POPULATED yes NUM_LOCAL_APPS 1 NUM_REMOTE_APPS 50 ISOLATION rr BP_RESIZEABLE yes APPLY db AND dbm“ Über programmierbare APIs (auch für Drittanbieter) oder Java Stored Procedures The keyword APPLY and its valid tokens, DB ONLY, DB AND DBM, and NONE, are used to determine the degree to which the Configuration Advisor's recommendations can be applied. The preceding command always outputs the Configuration Advisor's recommendations. You can then decide if you want to implement the changes immediately, at a later time, or not at all. Java stored procedures : auffassen als Web services so dass andere Anwend leicht darauf zugreifen können

Configuration Advisor: Grafisches Interface

Design Advisor Der Design Advisor generiert Empfehlungen für folgende Objekte und Maßnahmen: Neue Indizes Neue materialisierte Sichten (MQTs) Umwandlung in MDC-Tabellen (mit mehrdimensionalem Clustering) Umpartitionierung von Tabellen Löschen der unbenutzten Indizes und materialisierte Sichten (MQTs).

Architektur des Design Advisors:

Workload für den Design Advisor : Ein Workload ist eine Gruppe von SQL-Anweisungen User Eine Textdatei Graphical User Interface Die vor kurzer Zeit ausgeführten SQL-Anweisungen im SQL-Cache Statische SQL-Anweisugn SQL-Cache Package

Der Workload wird in der Tabelle ADVISE WORKLOAD gespeichert GUI führt das Programm db2advis aus Für jede SQL-Anweisung in der Tabelle ADVISE WORKLOAD ruft db2advis den DB2 UDB Optimizer auf Basierend auf statistischen Daten schlägt der Optimizer einige Indizes vor. Der Optimizer speichert die vorgeschlagenen Indizes in die Tabelle ADVISE INDEX Die vorgeschlagenen Indizes werden getestet und dabei die beste Teilmenge von Indizes ausgewählt Ergebnis ausgeben und bei Bedarf anwenden

Jeder SQL-Anweisung kann eine Frequenz zugewiesen werden SQL-Anweisung kann geändert oder gelöscht werden

Experiment 18 neue Indizes 2 MQTs (materialisierte Sichten) Der Design Advisor schlägt einen Entwurf innerhalb von 10 Minuten vor. Der Entwurf enthält: 18 neue Indizes 2 MQTs (materialisierte Sichten) 6 MDC-Tabellen (mehrdimensionales Clustering ), 4 Partitionsveränderungen, ….

Beispiel Suchen nach den gemeinsamen Subexpressions bei der Multi-query Optimierung

III.Self-Optimizing Self – Tuning Memory Vorher: Es ist schwer, die maximale Größe eines Speicherobjekts zu bestimmen. die maximale Größe kann nicht überschritten werden Das führt dazu: Wenn z.B ein Bufferpool nicht groß genug für die Datenspeicherung ist, werden die Daten aus dem Bufferpool entfernt und beim nächsten Zugriff wieder in den Bufferpool eingelesen. (Performance sinkt) Die Heapgröße ist für bestimmte Aktion z.B Backup nicht genug

in DB2 UDB Version 9 Heapgröße, Bufferpool, Cache etc. dynamisch konfigurieren Garantierte Minimum für Heap, Bufferpool etc. nicht reservierte Speicherbereiche für Heap , Bufferpool etc. nach Bedarf allokieren Folgende Speicherressourcen können getunet werden Buffer pools Package cache Locking memory Sort memory Total database shared memory

Database memory

Self-Tuning Memory Manager Cost-benefit Daten für jeden Heap Neue Größe für Heaps und Databas_memory Bestimmt neue Speicherallokation Legt die Frequenz des Tunings fest …..

Beispiel DBHEAP: Datenbankzwischenspeicher für Anwendung PCKCACHESZ: Größe des Paketcache UTIL_HEAP_SZ: die maximale Speichergröße, die gleichzeitig von den Dienstprogrammen BACKUP, RESTORE und LOAD Wenn DB2 UDB aktiv ist, falls die vordefinierte Größe eines Heaps etc. nicht genug für bestimmte Aktion ist, z.B Backup. DB2 UDB allokiere die nicht reservierte database shared memory für das Heap die normale Operationen beibehalten ohne auf die Applikatinen und Kunden zu wirken

Wirkung von Memory-Tuning auf Systemperformance Automatisch wird mehr Speicher DB2 zugewiesen Systemleistung steigt sofort um Faktor 10

Progressive OPtimization (POP) Problem: Sub-optimale QEPs( Query Execution Plan) durch Fehler in Kardinalitätsabschätzungen des Optimierers POP liefert flexible Mechanismen zur Erstellung von QEPs erkennt suboptimale QEPs und liefert Optimierungen zur Laufzeit robust gegen Fehlabschätzungen des Optimierers minimiert DBA Eingriffe

Vorher: Statistics Pläne mit Hilfe von Statistiken erstellt Problem: SQL Compilation Optimizer Optimizer Pläne mit Hilfe von Statistiken erstellt Problem: nicht mehr aktuelle Statistiken falsche Vermutungen über Attributsunabhängigkeiten führen zu falschen Kardinalitäts-abschätzungen und damit zu suboptimalen Plänen Best Plan Best Plan Plan Execution

POP vergleicht Kardinalitäts- abschätzungen mit aktuellen Werten zur Laufzeit geschieht mit Checkpoints (CHECK) haben Bedingung, die Kard.grenzen erkennt in denen der Plan gültig ist = validity range für jeden einzelnen Planoperator Wird CHECK Bedingung verletzt (validity range überschritten)  Re-Optimization ausgelöst erlaubt kontinuierliche Anpassungen des Plans durch einen geschlossenen Feedbackkreis zwischen Laufzeit und Optimierer

“MQT”with Actual Cardinality Jetzt: Statistics SQL Compilation Optimizer Optimizer 3 4 New Best Plan “MQT”with Actual Cardinality Best Plan With CHECK Best Plan 5 2 New Plan Execution Re-optimize If CHECK fails Plan Execution with CHECK MQT : materialized Query tables Partial Results 6 1 Use feedback from cardinality errors to improve current plan

POP Monitor :

Beispiel:

Der LEarning Optimizer (LEO) erkennt Fehler bei der Kardinalitätsabschätzung korrigiert falsche Statistiken zur Laufzeit „lernt“ mit Hilfe eines Feedback-Mechanismus aus Fehlern

Statistics Plan Execution SQL Compilation Optimizer Optimizer Best Plan Best Plan Plan Execution

4. Anwendung 1. Planbewahrung 3. Analyse 2. Monitor Statistics SQL Compilation Optimizer Optimizer 4. Anwendung Best Plan Best Plan Adjustments Adjustments 1. Planbewahrung Plan Execution Plan Execution Estimated Cardinalities Estimated Cardinalities 3. Analyse 2. Monitor Actual Cardinalities Actual Cardinalities

Beispiel

Berechnung des Anpassungsfaktors Vergleiche geschätzte mit der tatsächlichen Selektivität Mit hoher Wahrscheinlichkeit liegt ein Fehler vor, wenn gilt: Berechnung des Anpassungsfaktors

Bestimme den Anpassungsfaktor für das Prädikat (X.Price > 100)

IV. Zusammenfassung Seit Ver.8.1 stetige Erweiterung der autonomen Fähigkeiten In Ver.9 neue adaptive, self-tuning memory Features Ausblick: Weiterentwicklung bestehender Features für einen höheren Autonomiegrad Einführung von self-protecting Features um DB unverwundbarer zu machen bezüglich: Unauthorisiertem Zugriff und Nutzung Virus- / Denial-of-service Angriffen Und generellen Fehlern

Quellen: Kwan,Lightstone,Schiefer,Storm,Wu (IBM Canada) : Automatic Database Configuration for DB2 UDB: Compressing Years of Performance Expertise into Seconds of Execution Kache,Shin Han,Markl,Raman,EwenPOP/FED: Progressive Query Optimization for Federated Queries in DB2 Javaid Rajmohamed for DB2Mag: Continuous System Health Checking Markl,Raman,Simmen,Lohman,Pirahesh,Cilimdzic: Robust Query Processing through Progressive Optimization Gary Valentin, Michael Zuliani, Daniel C. Zilio: DB2 Advisor: An Optimizer Smart Enough to Recommend Its Own Indexes by V. Markl, G. M. Lohman, V. RamanLEO: An autonomic query optimizer for DB2 Adam J. Storm, Christian Garcia-Arellano, Sam S. Lightstone, Yixin Diao:Adaptive Self-Tuning Memory in DB2