Ausgewählte Advisors und MonitoringWerkzeuge in der Datenbank Ulrike Schwinn [email protected] Oracle Deutschland B.V. & Co KG Oracle Business Unit Database Technologies & Cloud Blog: http://blogs.oracle.com/dbacommunity_deutsch DOAG Oracle Monitoring Day Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Fragen ... • Welche Objekte bzw. welche Blöcke sind im Data Buffer Cache? • Welche Ressourcen verwendet meine Abfrage? • Welche Abfragen sind langlaufende Abfragen? • Welche Sessions/User verursachen die Engpässe? • Wie kann man PL/SQL monitoren? • Sind meine Indizes ausreichend oder habe ich zu viele Indizes? • Lohnt sich die In-Memory Option für mich? • Komprimierte Indizes oder Tabellen: Wieviel Platz spare ich? Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Monitoring Werkzeuge, Advisors ... in der Datenbank • Einfaches Framework in der Datenbank bestehend aus – V$- und Data Dictionary Views – Initialisierungsparameter – PL/SQL Packages – Enterprise Manager Cloud Control, Database Express, SQL Developer, sqlcl • Eigenschaften – Stehen in der Regel nach der Installation sofort zur Verfügung – Teilweise gekoppelt an Initialisierungsparameter • Lizenzierung berücksichtigen Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Advisors im Überblick Advisor Name Beschreibung ADDM diagnostiziert Datenbank Performance Probleme und gibt Empfehlungen SQL Access gibt Informationen und Empfehlungen über die Zugriffsstrukturen SQL Tuning führt Optimizer-Analyse-Läufe durch und gibt Empfehlungen SPA (SQL Performance Analyzer) Testing Werkzeug für SQL Workloads Compression berechnet die Komprimierungsrate pro Segment Memory analysiert die unterschiedlichen Cache Größen in einer WHAT-IF Analyse Segment analysiert Tablespaces, Tabellen, Partitionen usw. auf ihren Platzverbrauch UNDO hilft eine angemessene Größe des UNDO Tablespaces festzulegen MTTR beeinflusst das Checkpoint Verhalten Data Recovery analysiert persistente "Failure" (z.B. Daten-Korruptionen) SQL Repair analysiert SQL mit kritischen Fehlern, versucht einen SQL Plan zu finden In-Memory Advisor In-Memory Nutzen für eine Workload ... Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bevor man startet ... • Parameter STATISTICS_LEVEL TYPICAL oder ALL , nicht BASIC – Defaultwert ist TYPICAL – Aktiviert das Sammeln von Advisor Statistiken SQL> show parameter statistics_level NAME TYPE VALUE ------------------------------------ ----------- ---------------------------statistics_level string TYPICAL • Zusätzlich für Diagnostics und Tuning Pack SQL> show parameter control_man NAME TYPE VALUE ------------------------------------ ----------- -----------------------------control_management_pack_access string DIAGNOSTIC+TUNING Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Beispiel 1 – SQL Access Advisor – nicht neu aber ... • Gute Strukturen sind ein wichtiger Faktor für Performance! • Funktionsweise: Strukturanalyse von SQL Workloads • Gibt Empfehlungen für – Indizes – Materialized Views/Materialized View Logs – Partitionierung • Empfiehlt Aktionen und erzeugt SQL Skript – Erstellen (CREATE), Löschen (DROP), Beibehalten (RETAIN) • Verfügbarkeit im Linemode oder Enterprise Manager • Tuning Pack Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQL Access Advisor – API DECLARE workload_name varchar2(100) :='STS_DOAG'; task_name varchar2(100); task_id number; begin dbms_advisor.create_task('SQL Access Advisor', task_id, task_name); dbms_advisor.set_task_parameter(task_name,'ANALYSIS_SCOPE','INDEX'); dbms_advisor.set_task_parameter(task_name,'WORKLOAD_SCOPE','FULL'); dbms_advisor.set_task_parameter(task_name,'MODE','LIMITED'); dbms_advisor.set_task_parameter(task_name,'TIME_LIMIT','5'); dbms_advisor.set_task_parameter(task_name,'VALID_TABLE_LIST','DWH_DATA.%'); dbms_advisor.add_sts_ref(task_name, 'SYS', workload_name); dbms_advisor.execute_task(task_name); dbms_advisor.create_file(DBMS_ADVISOR.GET_TASK_SCRIPT(task_name),'HOME','adv.sql'); end; Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQL Access Advisor – Im Cloud Control Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQL Access Advisor – Ergebnis Rem Rem Rem Rem Rem SQL Access Advisor: Version 12.1.0.2.0 – Production Username: Task: Execution date: SYS TASK_74091 /* RETAIN INDEX "DWH_DATA"."FACT_701_CC_IDX" */ /* RETAIN INDEX "DWH_DATA"."FACT_701_PER_IDX" */ /* RETAIN INDEX "DWH_DATA"."LU_ITEM_701_FV01_IDX" */ CREATE INDEX "DWH_DATA"."LU_ELEMENTGROU_IDX$$_1216B0000“ ON "DWH_DATA"."LU_ELEMENTGROUP_REL“ ("ELEMENTGROUP_ID","VALUE_ID") COMPUTE STATISTICS; ... DROP INDEX "DWH_DATA"."LU_ITEM_701_ITM_IDX"; DROP INDEX "DWH_DATA"."LU_ITEM_701_PG_IDX"; Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | SQL Access Advisor - Fazit • Überprüfung der Strukturen ohne eigene Applikationskenntnisse • Kein Setup erforderlich • Einfache Durchführung über graphische Oberfläche • Benötigt Ressourcen • Benötigt Workload/STS • Überprüfung ist in jedem Fall sinnvoll – Indizes niemals einfach löschen oder einfach anlegen=> Skript editieren – Unterstützende Features: Invisible Indizes, Mehrfachindizierung in 12c • Tuning Pack erforderlich Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Beispiel 2 – Oracle Database In-Memory - Steckbrief • Reines In-Memory Format • Nutzung unterschiedlicher Komprimierungsarten (2x - 20x) • Einschaltbar auf Objektebene • Voraussetzungen: – Datenbank Release 12.1.0.2 – Gebunden an In-Memory Option • Der Column Store ist geeignet für einheitliche Zugriffe (alle Zeilen einer Tabelle) => typisch für analytische Abfragen • Der Column Store ist mit zusätzlichen neuen Optimizerzugriffen und Komprimierungsalgorithmen ausgestattet Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Beispiel 2 – In-Memory Advisor • Analysiert Workload und gibt Ratschläge zur Verwendung von Oracle Database In-Memory Option • Nutzt AWR und ASH Daten • Installation und Download notwendig • Nutzung – Über Package oder vorgefertigte Skripte bzw. EM ab Version 13.1 – Für 12c und auch für 11.2.0.3 Datenbanken • Voraussetzung: XMLDB • Lizenzierung: Tuning Pack erforderlich Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | In-Memory Advisor Verwendung • Aktuellen Download (neu im Juni!) von MOS (Doc ID 1965343.1) nutzen – Zip Datei und Paper • Kurze Installation über SQL Skript – Erzeugt IMADVISOR Schema, neue Packages und Views • Einfache Verwendung mit Skript – – – – Während Live Workload oder nach Batch Lauf Notwendig: Zeitspanne (ab wann und wie lange) Optional: Memory Size für In-Memory Ergebnis ist HTML Report und SQL Skript Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | In-Memory Advisor – in Aktion SQL> @imadvisor_recommendations.sql The following is a list of your existing tasks: TASK_NAME DATE_CREATED ------------------------------ ----------------------------task1 2016-JUN-16 15:01:44 Default task_name (new task): im_advisor_task_20160616172326 Enter value for task_name: task4 ... Analyzing and reporting on a live workload on this database (DBID=1381635790)... Enter value for inmemory_size: 2Gb The In-Memory Advisor will optimize for this In-Memory size: 2GB Enter begin time for report: Enter value for begin_time: -3:00 Enter duration in minutes starting from begin time Enter value for duration: 180 Using 2016-JUN-16 14:23:42.000000000 as report begin time Using 2016-JUN-16 17:23:59.000000000 as report end time Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | In-Memory Advisor – Ergebnisse • HTML Datei (imadvisor_<taskname>.html) • SQL Skript Rem Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. ALTER TABLE "DWH_DATA"."FACT_PD_OUT_ITM_701" INMEMORY MEMCOMPRESS FOR QUERY LOW; ALTER TABLE "DWH_DATA"."LU_ELEMENTGROUP_REL" INMEMORY MEMCOMPRESS FOR QUERY LOW; ALTER TABLE "DWH_DATA"."LU_ITEM_701" INMEMORY MEMCOMPRESS FOR QUERY LOW; ALTER TABLE "DWH_DATA"."LU_ELEMENTRANGE_REL" INMEMORY NO MEMCOMPRESS; ... Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Ergebnis Ausschnitt Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | In-Memory Advisor - Weiteres • Weitere Verwendung – AWR s und STS können von anderer Datenbank importiert werden – Müssen dem Advisor bekannt gegeben werden (spezielle Vorgehensweise siehe Paper) • Wichtig: – Muss ausreichende und relevanten Daten erhalten • Informationen – Oracle Database In-Memory Advisor Usage Examples – Using SAP NetWeaver with Oracle Database In- Memory - im SAP Umfeld eigenes Vorgehen Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Fazit und Ausblick • Ausprobieren lohnt sich! • Immer zusätzlich Realitäts Check durchführen • Nicht vergessen: Advisor und Monitoring Werkzeuge haben fokussierten und definierten Einsatzbereich • In 12.2 wird es neue bzw. erweiterte Advisors geben • Informationen auch auf unserem deutschsprachigen Community Blog Seite https://blogs.oracle.com/dbacommunity_deutsch/ Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |