Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

IBM DB2 Qiguang Yan & Stefan Lenschow

Ähnliche Präsentationen


Präsentation zum Thema: "IBM DB2 Qiguang Yan & Stefan Lenschow"—  Präsentation transkript:

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

2 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

3 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

4 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

5 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

6 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

7 Meldet alle Alarminfos dem Journal
Sendet diese via 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

8 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

9 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

10 Recommendation Advisor

11 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

12 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

13 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

14 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

15 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

16 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

17 Configuration Advisor: Grafisches Interface

18

19 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).

20 Architektur des Design Advisors:

21 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

22 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

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

24 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, ….

25

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

27 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

28 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

29 Database memory

30 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 …..

31 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

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

33 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

34 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

35 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

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

37 POP Monitor :

38 Beispiel:

39

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

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

42 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

43 Beispiel

44

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

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

47 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

48 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


Herunterladen ppt "IBM DB2 Qiguang Yan & Stefan Lenschow"

Ähnliche Präsentationen


Google-Anzeigen