Kurs Oracle 9i Einführung Performance Tuning Teil 2 Tuning Werkzeuge Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16
Agenda 1. Einführung 2. DBA_- und V$-Sichten 3. Data Dictionary-Sichten 4. V$-Sichten 5. Explain Plan 6. 7. / UTLESTAT 8. Timo Meyer Wintersemester 2005 / 2006 Seite 2 von 16 Seite 2 von 16
1. Einführung Data Dictionary-Sichten kennen lernen Werkzeuge zum Diagnostizieren beschreiben und nutzen können Einführung Installation Hilfsmittel Explain Plan (Ausführungsplan) Wird direkt angezeigt Schreibt in.trc-datei Graphische Tools (Drittanbieter, z.b. Quest Software) / UTLESTAT Seite 3 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 3 von 16
1. Einführung Vor dem Tunen wissen, womit man optimiert (wichtig!) Informationen zum aktuellen Stand erhalten / sammeln Oracle besitzt eigene Tools Drittanbieter sind in der Regel nicht nötig, z.b. SAP-Tools Zeiträume der Datenbankaktivität müssen überprüft und verglichen werden Bestimmter Zeitpunkt ist i.d.r. uninteressant, weil die Datenbank im laufenden Betrieb arbeiten muss Vor Beschaffung von Informationen Datenbank laufen lassen Produktivsystem Informationen zum aktuellen Stand erhalten Sie nicht sofort beim Hochfahren der Datenbank, da keine Aktivität! Timo Meyer Wintersemester 2005 / 2006 Seite 4 von 16 Einführung Installation Seite 4 von 16
2. DBA_ und V$-Sichten Fragen System-Tabellen im Data Dictionary ab Statische und dynamische Performance-Sichten z.b. dba_tables Statische Informationen über Tabelle (owner, name, storage, ) z.b. v$locked_object Objekte, die gesperrt sind Timo Meyer Wintersemester 2005 / 2006 Seite 5 von 16 Seite 5 von 16
3. Data Dictionary-Sichten Werden durch Skripts erstellt dba_segments dba_tables dba_table_columns dba_indexes Timo Meyer Wintersemester 2005 / 2006 Seite 6 von 16 Seite 6 von 16
4. V$-Sichten V$ Synonym für V_$-Sichten, die aus X$-Tabellen erstellt werden und im Schema von SYS liegen X$-Tabellen beim Instanzstart fortlaufend gefüllt und aktualisiert und beim Herunterfahren der Datenbank vollständig gelehrt dynamische Sichten X$-Tabellen sind undokumentiert und besitzen kryptische Namen X$- und V$-Tabellen sind in folgender Sicht aufgelistet: v$fixed_table Um zeitliche Statistiken messen zu können, muss der Parameter timed_statistics auf true gesetzt werden Timo Meyer Wintersemester 2005 / 2006 Seite 7 von 16 Neue V$-Sichten Funktionen Seite 7 von 16
4. V$-Sichten werden unterteilt Informative Sichten Geben Informationen über Parameter zurück z.b. v$parameter Status-Sichten Geben aktuellen Stand der Instanz wieder z.b. v$instance, v$session, v$lock Akkumulative Sichten Sammeln Informationen über bestimmte Zeiträume z.b. v$undostat Timo Meyer Wintersemester 2005 / 2006 Seite 8 von 16 Neue V$-Sichten Funktionen Seite 8 von 16
5. Explain Plan (Ausführungsplan) Nutzen Leichtes Erkennen des Ausführungsplanes Keine genaueren Angaben, anders als bei Umsetzung Erstellen einer Plan-Tabelle utlxplan.sql SYSDBA oder DBA bzw. Rolle PLUSTRACE %Oracle%\sqlplus\admin\plustrace.sql Einschalten durch set autotrace on explain [statistics]; Ausschalten durch set autotrace off; Nur Plan ausgeben (Ausgabewerte unterdrücken) set autotrace trace; Explain Anhang Plan Seite 9 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 9 von 16
6. Tracing einschalten durch Parameter sql_trace in Initialisierungsparameter-Datei (pfile/init.ora) alter system set sql_trace = true; alter session set sql_trace = true; Speicherort der Trace-Datei: user_dump_dest Anzeigbar durch: show parameter user_dump_dest; Eine lesbare Datei wird erzeugt: c:\tkprof <Pfad der Trace-Datei> c:\t1.txt Anmerkung: timed_statistics auf true stellen Seite 10 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 10 von 16
Übung Timo Meyer Wintersemester 2005 / 2006 Seite 11 von 16 Seite 11 von 16
7. / UTLESTAT Erstellt Start- und End-Snapshots vom Momentzustand der Oracle-Datenbank Veraltet, wird ab Oracle 9i nicht mehr verwendet Ersetzt durch Wird durch zwei Skripte ausgeführt utlbstat.sql utlestat.sql Nur noch aus Gründen der Abwärtskompabilität zu Oracle 8i vorhanden Seite 12 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 12 von 16
7. / UTLESTAT Skript ausführen: %Oracle%\rdbms\admin\utlbstat.sql Datenbank eine Weile laufen lassen Skript ausführen: %Oracle%\rdbms\admin\utlestat.sql Datensammlung wird beendet Datei report.txt wird im aktuellen Verzeichnis erstellt, wo utlestat.sql ausgeführt worden ist (evtl. Tabellen werden gelöscht) Seite 13 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 13 von 16
8. Installation Skript ausführen start /oracle/ora92/rsbms/spcreate.sql Kennwort für PERFSTAT in der Datei ändern auf, z.b. connect perfstat/perf@testdb1; Snapshot erzeugen als PERFSTAT anmelden sqlplus perfstat/perf@testdb1; execute statspack.snap; Snapshots abfragen select snap_id, snap_time from stats$snapshot; Bericht erzeugen start /oracle/ora92/rdbms/spreport.sql; Timo Meyer Wintersemester 2005 / 2006 Seite 14 von 16 Seite 14 von 16
Übung Timo Meyer Wintersemester 2005 / 2006 Seite 15 von 16 Seite 15 von 16
Abwärtskompabilität 12 PERFSTAT 13 V$PARAMETER 8 Ausführungsplan 9 Produktivsystem 4 V$SESSION 8 V$UNDOSTAT 8 Dateien Quest Software 4 V_$ 7 PLUSTRACE.SQL 9 X$ 7 REPORT.TXT 13 Rolle 9 Skript 6 SPCREATE.SQL 14 Snapshot 12 SPREPORT.SQL 14 SAP 4 12.SNAP 13 Schema 7 SYSDBA 9.SQL 12 Sichten System-Tabellen 5 UTLESTAT.SQL 12 akkumulative 8 SYS 7 UTLXPLAN.SQL 9 Data Dictionary- 5 Datenbankaktivität 4 DBA_ 5 10 DBA 9 DBA_INDEXES 6 Tools 3, 4 Diagnostizieren 3 DBA_SEGMENTS 6 DBA_TABLE_COLUMNS 6 Werkzeuge 3 Einführung 3 DBA_TABLES 5, 6 Explain Plan 9 dynamische 5, 7 informative 8 Hilfsmittel 3 Status- 8 statische 8 Parameter V$ 5, 7 AUTOTRACE 9 V$FIXES_TABLE 7 SQL_TRACE 10 V$INSTANCE 8 TIMED_STATISTICS 10 V$LOCK 8 USER_DUMP_DEST 10 V$LOCKED_OBJECT 8 Hinweis: Die Folien sind in Anlehnung an Schulungsunterlagen von der dama.go GmbH Potsdam zur Ausbildung zum Oracle Certified Professional Database Administrator 9i entstanden. Seite 16 von 16 Timo Meyer Wintersemester 2005 / 2006 Seite 16 von 16