Strategisches Tuning – Teil 1 Werkzeuge, Lastprofile · 2008-12-16 · Database Consult GmbH 1...

22
Database Consult GmbH 1 Strategisches Tuning – Teil 1 Werkzeuge, Lastprofile TOAD User Konferenz 2007 Dr. Günter Unbescheid Database Consult GmbH ©Database Consult GmbH - Jachenau Strategisches Tuning – Teil 1 10/2007 Folie 2 von Auf Überraschungen sind wir vorbereitet. – Nur die alltäglichen Dinge brechen über uns herein wie Katastrophen. Stanislaw Jercy Lec Statement 1 Unzureichend performante Systeme sind normal und aus diesem Grunde kein Grund zur Beunruhigung.

Transcript of Strategisches Tuning – Teil 1 Werkzeuge, Lastprofile · 2008-12-16 · Database Consult GmbH 1...

Database Consult GmbH 1

Strategisches Tuning – Teil 1Werkzeuge, Lastprofile

TOAD User Konferenz 2007Dr. Günter Unbescheid

Database Consult GmbH

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 2 von

Auf Überraschungen sind wir vorbereitet. – Nur die alltäglichen Dinge brechen über uns herein wie Katastrophen.

Stanislaw Jercy Lec

Statement 1

Unzureichend performante Systeme sind normal und

aus diesem Grunde kein Grund zur Beunruhigung.

Unzureichend performante Systeme sind normal und

aus diesem Grunde kein Grund zur Beunruhigung.

Database Consult GmbH 2

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 3 von

Wenn der Wind des Wandels weht, bauen die einen Schutzmauern, die anderen bauen Windmühlen

Chinesische Weisheit

Statement 2

Tuning ist daher ein alltägliches Geschäft,

dass sich noch dazu täglich ändert!

Tuning ist daher ein alltägliches Geschäft,

dass sich noch dazu täglich ändert!

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 4 von

Wenig gedeiht,Zuviel zerstreut.

Volksmund

Phantasie ist wichtiger als Wissen,denn Wissen ist begrenzt.

Albert Einstein

Statement 3

Tuning erfordert Wissen, Geduld, Neugier, Phantasie,Konzentration auf das Wesentliche,

Werkzeuge

Tuning erfordert Wissen, Geduld, Neugier, Phantasie,Konzentration auf das Wesentliche,

Werkzeuge

Database Consult GmbH 3

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 5 von

Wir leben in einer Zeit vollkommener Mittel und verworrener Ziele.

Albert Einstein

Statement 4

Die Kenntnis der Features macht noch kein performantes System

Die Kenntnis der Features macht noch kein performantes System

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 6 von

Resumee

[Tuning] ist wie Rudern gegen Strom. Sobald man aufhört, treibt man zurück.

In Anlehnung an Benjamin Britten

[Tuning] ist wie Rudern gegen Strom. Sobald man aufhört, treibt man zurück.

In Anlehnung an Benjamin Britten

Database Consult GmbH 4

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 7 von

Auf den Punkt...

Wissen

Werkzeuge

PsychologieFeatures

Strategie

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 8 von

Agenda

• Teil 1 – Werkzeuge, Erstellung von Profilen– Analysestrategien– Informationsquellen der Versionen 10g und 11g– Erstellung von Lastprofilen

• Teil 2 – Analyse von Lastprofilen– Wait Events– CPU-Zeiten– SQL Zugriffspläne

Database Consult GmbH 5

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 9 von

Teil 1: Werkzeuge, LastprofileAnalysestrategien

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 10 von

Tuning Features und Tools.....

V$-Tabellen

AWR

ADDM

ASH

ADR

Trace Analyzer

OraSRP

Statspack

EM

TOAD

SQL*Navigator

Hora

SQL Tuning Advisor

SQL Test Builder

Segment Advisor

PGA Advisor

Undo Advisor

Buffer Cache Advisor

Library Cache Advisor

Redo Log Advisor

DD - Viewsinit Parameter

TKPROF

Plan Stability

Dynamic SamplingAdaptive Cursors

Variable Peeking

SQL Plan Management

Result Cache

SPA

SQL Monitoring

SQL Access Advisor

SQL Repair Advisor

Extended Statistics

Spotlight

Klares Nutzungskonzeptunabdingbar!

Database Consult GmbH 6

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 11 von

Zielsetzung

Minimierungdes Ressourcenverbrauchs+ Angepasstes HW Sizing

Skalierbarkeit

Akzeptable AntwortzeitenSLA-Erfüllung

Akzeptanz

Funktionale Vollständigkeit

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 12 von

... nach dem Lehrbuch

• Tuning ist Teil des gesamten Oracle-Management Prozesses– Systemdesign und Implementierung während der Entwicklung– Kontrolle der Ziele während des „Approval“– Monitoring und Tuning während Nutzung

• Die Wirksamkeit steigt mit der „Design-Nähe“• In der Praxis kommen Systemdesign und Approval oft zu kurz

(externe Zukäufe, Termindruck ...)– erhöhter Tuningbedarf bei kritischen Anwendungen

Systemdesign

Approval

MonitoringTuning

Database Consult GmbH 7

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 13 von

Aktionspyramide

Tuning

Lastprofile

MonitoringReporting

Optimierte Implementierung

Datenbankdesign

Systemanalyse

reaktiv

proaktiv

„performance engineering“

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 14 von

Instrumentarium• Bewusste Werkzeugwahl

– Monitoring, Tuning, Ticketing– Redundanzen können optimierend wirken (nicht bei Ticketing)

• Know-How– gezielte Aus- und Weiterbildung– Neugier und Experimentierfreude

• IST-Bewusstsein– Applikation (Architektur, Abhängigkeiten)– Datenbank (Baselines, Abhängigkeiten)

• Teamfähigkeit– DB, Netzwerk, Applikation, OS, Storage– angepasste Organisationsstrukturen, Public Relations– angepasste Arbeitsabläufe mit problemorientierter

Standardisierung, Eigenverantwortlichkeit

Database Consult GmbH 8

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 15 von

Strategie

• Reaktion bei Abweichung von Zielvorgaben/Erwartungen– Skalierbarkeit– Antwortzeitverhalten

• Kenntnis des Applikations-Umfeldes (Architektur)• Exakte Fokussierung auf das Problem

– Monitoring - Lastprofile

• Konzentration auf signifikante Engpässe– CPU-Zeiten, Wartezeiten

• Optimierung dieser Engpässe• Kontrolle der Zielvorgaben• Bei Bedarf: nächste Runde

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 16 von

Strategie

Reduktion der Anwortzeiten durch Optimierungmassgeblicher Faktoren

Ermittlung der Faktoren durch Aufzeichnung von Ressourcenprofilen

Ressourcenprofile listen CPU- und Wartezeiten von Kontexten

Oracle Wait Events und Zeitmodelle ermöglichen Profile

Methode

Database Consult GmbH 9

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 17 von

Fokussierung

• Fokus auf geschäftsrelevante Dialogemit kritischem Antwortzeitverhalten

• Kenntnis des technologischen Umfelds

• Kenntnis des konkreten Dialogablaufs – z.B. über Aktivitätsdiagramme

• Messung zum richtigen Zeitpunkt in originalem System

Methode

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 18 von

Fokussierung

C D S S S S C C D DSession 4D C C C D D S S C DSession 3

Zeit

SSession 2 D D C D D D C C SC D S S S C D D S CSession 1

Grafik nach C. Millsap

C = 32,5 %D = 37,5 %S = 30,0 %

C = 25 %D = 75 %S = 0 %

Database Consult GmbH 10

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 19 von

Teil 1: Werkzeuge, LastprofileInformationsquellen 10g/11g

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 20 von

Übersicht

• Klare, effizient abrufbare Informationen im Tuningkontext:

• Applikation– Systemarchitektur (Diagramm)– Verantwortlichkeiten/Personen

• Datenbank– Kennzahlen, Metriken, Services – aktuell und historisch– Schema-Informationen/Abhängigkeiten (Diagramm)

Database Consult GmbH 11

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 21 von

Beispieldiagramm Systemarchitektur

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 22 von

Beispieldiagramm Systemarchitektur

Database Consult GmbH 12

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 23 von

Schemadiagramm

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 24 von

Infrastruktur

Database Consult GmbH 13

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 25 von

Monitoring

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 26 von

Strategie

Database Consult GmbH 14

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 27 von

Analyse

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 28 von

Teil 1: Werkzeuge, LastprofileErstellung von Lastprofilen

Database Consult GmbH 15

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 29 von

Session Lokalisierung

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 30 von

Tracefiles

Database Consult GmbH 16

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 31 von

Identifizierung

• Generiert individuelles Infix für Trace-Dateien• Dynamisch für die Session• Immer dann, wenn Session mehrere Prozesse benutzt:

– Parallel Query– Shared Server

ALTER SESSION SETtracefile_identifier = 'GU02';

Format: <sid>_ora_<pid>_GU02.trc

Werkzeuge

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 32 von

Tracefile ermitteln und öffnenRem ggf. an OS oder Ora-Version anpassenSET SUFFIX TRCCOLUMN filename NEW_VALUE filename

SELECT p1.value||'\'||p2.value||'_ora_'||p.spid ||decode(p3.value,null,'','_'||p3.value) filename

FROMv$process p,v$session s,v$parameter p1,v$parameter p2,v$parameter p3

WHERE p1.name = 'user_dump_dest'AND p2.name = 'db_name'AND p3.name = 'tracefile_identifier'AND p.addr = s.paddrAND s.audsid = USERENV ('SESSIONID');

EDIT &&filenameSET SUFFIX SQLCOLUMN filename CLEAR

Database Consult GmbH 17

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 33 von

Application Info

• client_info, module, action über DBMS_APPLICATION_INFO• client_id über DBMS_SESSION – „auditierbar“• Filtern teilweise möglich über

– v$session, – v$sqlarea, v$sql– dbms_monitor

BEGINDBMS_APPLICATION_INFO.SET_CLIENT_INFO

( CLIENT_INFO => 'Test-Client');DBMS_SESSION.SET_IDENTIFIER

(CLIENT_ID => 'Test-ID');END;

Werkzeuge

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 34 von

Tracing <= 10g

• Level 1 – wie sql_trace = true• Level 4 – 1 + Bindevariablen• Level 8 – 1 + wait events• Level 12 – 1 + BV + WE

alter session set timed_statistics = true;alter session set max_dump_file_size = unlimited; alter session set events

'10046 trace name context forever, level 12'alter session set events

'10046 trace name context off';

Database Consult GmbH 18

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 35 von

Tracing <= 10g

dbms_system.set_bool_param_in_session(72, 166, 'timed_statistics', true);

dbms_system.set_int_param_in_session(72, 166, 'max_dump_file_size', 2147483647);

dbms_system.set_ev(72, 166, 10046, 8, '');/* Tracing ausschalten */dbms_system.set_ev(72, 166, 10046, 0, '');-- ################DBMS_SUPPORT.START_TRACE_IN_SESSION

(SID => 12, SERIAL => 77, WAITS => TRUE, BINDS => TRUE);

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 36 von

Tracing <= 10g

# ORADEBUG über SQLPlus# für ProzessORADEBUG SETORAPID 8 –- verifizieren über v$process, oderORADEBUG SETMYPID –- fuer eigenen ProzessORADEBUG EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12

# für die eigene SessionORADEBUG SETMYPID; -- Debug current session.ORADEBUG SESSION_EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12ORADEBUG TRACEFILE_NAME; -- anzeigen current trace fileORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF# weitere AlternativenEXECUTE dbms_system.set_ev (9,29,10046,8,'');EXECUTE dbms_system.set_ev (9,29,10046,0,'');

Database Consult GmbH 19

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 37 von

Tracing <= 10g

-- Logon-TriggerCREATE OR REPLACE TRIGGER b4711_logonAFTER LOGON ON b4711.SCHEMA BEGIN

dbms_session.set_sql_trace (TRUE);END;

CREATE OR REPLACE TRIGGER b4711_logoff BEFORE LOGOFF ON b4711.SCHEMABEGIN

dbms_session.set_sql_trace (FALSE);END;

-- Beliebig aktivierenALTER TRIGGER b4711 _logon ENABLE;ALTER TRIGGER b4711 _logon DISABLE;

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 38 von

Tracing <= 10g

• Dauerhaftes Setzen der Events• Mehrfache Events immer in Folge oder über ":"!• Nicht für immediate dumps geeignet• Alert-Datei zeigt aktive Events

# SQL-Trace aktiviert am 12.08.2003 GUEVENT='10046 trace name context forever, level 12'# Interna des CBO-Optimizers aktiviert am 1.9.03 EVENT='10053 trace name context forever, level 1'

# alternativ mit :, \ für ZeilenumbruchEVENT="\10046 trace name context forever, level 12:\10053 trace name context forever, level 1"

Database Consult GmbH 20

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 39 von

Tracing <= 10g

• Lesen eingestellter Events und Level• Zeigt Werte nur für die eigene Session

declare event_level number;begin for i in 10000..10999 loop sys.dbms_system.read_ev(i,event_level);if (event_level > 0) thendbms_output.put_line('Event

'||to_char(i)||' set at level '|| to_char(event_level));

end if;end loop;

end;

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 40 von

Events – Auswahl

Database Consult GmbH 21

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 41 von

Tracing >= 10g

• Hierarchische Filter für Servicename, Modul und Action• Separater Filter für Client Identifier• Regeln wirken kumulativ• Ausgabe der definierten regeln über View

DBA_ENABLED_TRACES

dbms_monitor.serv_mod_act_trace_enable('APP1', 'PACK_X', 'Proc_Y');

dbms_monitor.serv_mod_act_trace_disable('APP1', 'PACK_X', 'Proc_Y');

dbms_monitor.client_id_trace_enable('GU');

dbms_monitor.client_id_trace_disable('GU');

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 42 von

Tracing

• Zusammenführen von Trace-Dateien für– Client-Identifier– Module, Actions– Sessions

trcsess [output=output_file_name][session=session_id][clientid=client_id][service=service_name][action=action_name][module=module_name][trace_files]

Database Consult GmbH 22

©Database Consult GmbH - Jachenau

Strategisches Tuning –Teil 1

10/2007 Folie 43 von

Bis nachher...Bis nachher...