SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
www.informatik-aktuell.de
Angelika Gallwitz
Statistische Auswertungen in Oracle mit
Statspack und AWR 1
Mittwoch, 16. Dezember
2015
 DBA Datenbankadministrator
 Seit 1984 in der IT tätig
 Seit 1987 mit Oracle Datenbanken
 Als Entwickler und Datenbankadministrator
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 2
Mittwoch, 16. Dezember
2015
1. Einleitung
2. Oracle 12c Neuerungen
3. Systemvorraussetzungen
4. Perfstat Schema einrichten, Statspack Reports
5. ADDM und AWR Architektur
6. ADDM Ablauf
7. AWR Reports
8. Leitfaden zur Auswertung
9. Massnahmen I/O Durchsatz Messung Calibration
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 3
Mittwoch, 16. Dezember
2015
 Die Automatischen Features der Performance Diagnose in der Oracle Datenbank 12c.
 Statspack-Reports bzw. AWR Reports werden herangezogen, um Performance Engpässe zu erkennen
und Maßnahmen zu ergreifen. Wie erzeuge und interpretiere ich einen Statistik Report. Wie verändere
ich Snap Level und Threshold.
 Im AWR Repository werden aktuelle und historischen Performance Statistiken abgespeichert.
 Der (ADDM) durchläuft ein Set vordefinierter Kriterien, nach denen die aktuelle Performance der
Datenbank analysiert wird .
 Nachdem ein Problem identifiziert und analysiert worden ist, hilft der ADDM selbst Probleme zu
beheben
 Mit Statspack ADDM-, ASH- und AWR-Reports können Probleme und Statistiken sofort oder
nachträglich analysiert werden.
 Der ADDM analysiert Performance Probleme direkt nach dem Auftreten des Events.
 ADDM sollte von DBAs zuerst benutzt werden, wenn ein Performance Problem bemerkt wird.
 Es wird anhand der Wait-Events eine Zuordnung zu den Problembereichen vorgenommen und
Empfehlungen zu Tuning Maßnahmen gegeben
4
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
 Neue Idle Events in den Reports: LogMiner, PQ, SQL*Net, Capture Reply
 In der Performance Analyse und Diagnose durch den "Real Time ADDM".
 SQL Monitor-,ASH-, ADDM und AWR – Reports zeigen jetzt Statistiken von „In-Memory“
Operationen
 AWR Report hat neue Sektionen - In-Memory Segments Statistics – IO Statistik.
 Der ADDM kann in unterschiedlichen Connection Modi gefahren werden.
 Der „Real-Time ADDM“ mit dem Emergency Feature hilft die Ursachen und Lösungen zu
finden, wenn die Datenbank hängt.

 Performance Hub Active Report
 PGA_AGGREGATE_LIMIT kann jetzt gesetzt werden
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 5
ADDM und AWR sind standardmäßig eingeschaltet und werden gesteuert über den Parameter
Control_management_pack_access:
timed_statistics = true
statistics_level = [typical|all] /* ausschalten mit „BASIC“
Control_management_pack_access=diagnostic/diagnostic+tuning /* ausschalten mit None
Systemstatistiken müssen vorhanden sein:
dbms_stats.gather_system_stats(gathering_mode=>'start');
Nach 30 Minuten
dbms_stats.gather_system_stats(gather_mode=>'stop');
Für I/O Statistiken z.B. average read time benötigen Sie Ihre Hardwarespezifischen
Antwortzeiten normale Werte liegen zw. 5000 u. 20000 Microsekunden
Execute dbms_advisor.set_default_task_parameter(‚ADDM‘, ‚DBIO_EXPECTED‘, 8000);
Iostat –d 5
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 6
SQL> SELECT statistics_name, activation_level, Session_settable, session_status, statistics_view_name
FROM v$statistics_level ORDER BY 1
STATISTICS_NAME ACTIVAT SES SESSION_ STATISTICS_VIEW_NAME
---------------------------------------------------------------- ------- --- -------- --------------------------
OLAP row load time precision TYPICAL YES ENABLED
Automatic DBOP Monitoring TYPICAL YES ENABLED V$SQL_MONITOR
Active Session History TYPICAL NO ENABLED V$ACTIVE_SESSION_HISTORY
Adaptive Thresholds Enabled TYPICAL NO ENABLED
Automated Maintenance Tasks TYPICAL NO ENABLED
Bind Data Capture TYPICAL NO ENABLED V$SQL_BIND_CAPTURE
Buffer Cache Advice TYPICAL NO ENABLED V$DB_CACHE_ADVICE
Global Cache Statistics TYPICAL NO ENABLED
Longops Statistics TYPICAL NO ENABLED V$SESSION_LONGOPS
MTTR Advice TYPICAL NO ENABLED V$MTTR_TARGET_ADVICE
Modification Monitoring TYPICAL NO ENABLED
PGA Advice TYPICAL NO ENABLED V$PGA_TARGET_ADVICE
Plan Execution Sampling TYPICAL YES ENABLED V$ACTIVE_SESSION_HISTORY
Plan Execution Statistics ALL YES ENABLED V$SQL_PLAN_STATISTICS
SQL Monitoring TYPICAL YES ENABLED V$SQL_MONITORING
Segment Level Statistics TYPICAL NO ENABLED V$SEGSTAT
Shared Pool Advice TYPICAL NO ENABLED V$SHARED_POOL_ADVICE
Streams Pool Advice TYPICAL NO ENABLED V$STREAMS_POOL_ADVICE
Threshold-based Alerts TYPICAL NO ENABLED
Time Model Events TYPICAL YES ENABLED V$SESS_TIME_MODEL
Timed OS Statistics ALL YES ENABLED
Timed Statistics TYPICAL YES ENABLED
Ultrafast Latch Statistics TYPICAL NO ENABLED
Undo Advisor, Alerts and Fast Ramp up TYPICAL NO ENABLED V$UNDOSTAT
V$IOSTAT_* statistics TYPICAL NO ENABLED
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 7
 SQL> select pname, pval1 from sys.aux_stats$ ;
PNAME PVAL1
------------------------------ ----------
STATUS
DSTART
DSTOP
FLAGS 1
CPUSPEEDNW 3161,90476
IOSEEKTIM 10
IOTFRSPEED 4096
SREADTIM ,865
MREADTIM ,161
CPUSPEED 1115
MBRC 0
MAXTHR 1865474048
SLAVETHR 479232
Execute dbms_advisor.set_default_task_parameter(‚ADDM‘, ‚DBIO_EXPECTED‘, 8650);
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 8
 Seit Oracle 9.0

sreadtim - single block read time

mreadtim - multiblock read time

mbrc - multi-block read count

cpuspeed - CPU speed
 Seit Oracle 9.2

maxthr - maximum I/O throughput

slavethr -average slave throughput

Seit Oracle 10g

cpuspeedNW - Represents noworkload CPU speed

ioseektim - I/O seek time equals seek time + latency time + operating system overhead time.

iotfrspeed - I/O transfer speed is the rate at which an Oracle database can read data in a single read
request

How to Set Different System Statistics for the Instance Doc Id 149560.1
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 9
• Seit Oracle 8.1.7 bis heute unterstützt
• Sinnvoll einsetzbar, wenn keine Diagnostik Pack
Lizenz vorhanden ist
• Ist vergleichbar mit dem AWR Report
• Speichert die Performance Statistik Daten permanent
in Oracle Tabellen im Schema des Users perfstat
• Die gesammelten Daten können über den Statspack-
Report analysiert werden
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 10
Mittwoch, 16. Dezember
2015
• Schema perfstat anlegen
• ?/rdbms/admin/spcreate.sql
• Automatisierung
• /rdbms/admin/spauto.sql
• Report erstellen
• ?/rdbms/admin/spreport.sql
• Perfstat-User löschen
• ?/rdbms/admin/spdrop.sql
• Perfstat-Daten löschen
• ?/rdbms/admin/spdrop/sppurge.sql
• Readme
• ?/rdbms/admin/spdoc.txt
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 11
Mittwoch, 16. Dezember
2015
• $ORACLE_HOME/rdbms/admin/sprepins.sql
Genereller Instance Healthcheck
• $ORACLE_HOME/rdbms/admin/sprepsql.sql
Report einzelner SQL Statements über hash_value
Bsp:
• SQL> connect perfstat/perfstat
• SQL> execute statspack.snap
• SQL> execute statspack.snap
SQL> select snap_id,old_hash_value,hash_value from perfstat.stats$sql_summary
order by hash_value;
• $ORACLE_HOME/rdbms/admin/sprsqins.sql
Abfrage dbid ,instance, hash_value
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 12
Mittwoch, 16. Dezember
2015
 In Tabelle perfstat.stats$statspack_parameter
select * from perfstat.stats$level_description
• Levels: 0, 5 ,6 ,7 ,10
• Levels = 5 ist der Default Wert
• Level >= 7 beinhaltet zus. Segmentstatistiken
 SQL> connect perfstat
SQL> execute statspack.snap - (i_snap_level=>7,
i_modify_parameter=>'true');
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 13
Mittwoch, 16. Dezember
2015
 Kommt mit der Datenbank seit Oracle 10
 Liegt im Schema SYS
 Im Tablespace SYSAUX
 Ist in jeder Oracle Edition enthalten(SE, EE)
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 14
Mittwoch, 16. Dezember
2015
 Snap_level 1 statistics_level = typical
 Snap_level 2 statistics_level = all
beinhaltet zusätzlich OS Statistiken
 control_management_pack_access = diagnostic oder
tuning+diagnostic
 TIMED_STATISTICS = TRUE
 ash_enable = [true|false]
 awr_restrict_mode = [true|false]
 db_cache_advice = [on|off]
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 15
Mittwoch, 16. Dezember
2015
Statspack AWR
 Auch für Standard Edition ohne
zusätzliche Lizenz
 Snap level 1-10
 Es muß ein Job eingerichtet
werden, der regelmäßig Statistiken
sammelt
 Es muß ein Job eingerichtet
werden, der die gesammelten
Statistiken löschen
 Statistiken können adhoc
gesammelt werden
SQL> connect perfstat
SQL> execute statspack.snap
 Benötigt Diagnostic Pack
 Snap Level 1 oder 2
 ADDM sammelt automatisch
Statistiken 1 x jede Stunde,
in 11g werden diese 8 Tage
aufbewahrt
 Statistiken können adhoc
gesammelt werden
SQL> connect sys / as sysdba
SQL> BEGIN
dbms_workload_repository.create
_snapshot();
END;
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 16
Mittwoch, 16. Dezember
2015
ADDM
Selbst-
Tuning
Komponente
Selbst-
Tuning
Komponente
Interne Clients
SGA
In Memory
Statistik-
Sammlung
SGA
Repository
der
AWR u.
ADDM
Snapshots
MMON
Prozess
V$ DBA_ WR.$
Externe
Clients OEM SQLPlus
User-
Backgroun
d Prozesse
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 17
 Automatic Database Diagnostic Monitor, läuft direkt nach
jedem AWR Snapshot
 Dabei wird im Hintergrund eine eigene Statistiksammlung,
das Automatic Workload Repository (kurz AWR) eingesetzt.
 Per Default erzeugt Oracle 11g einmal stündlich ein Statistik-
Snapshot der Datenbankauslastung
 Diese Snapshots werden per Default 8 Tage aufbewahrt
18
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
1. Komponenten Überblick
2. Ziel der ADDM Analyse
3. Problemtypen des ADDM
4. Der "Real Time ADDM„
5. ADDM Modi
6. ADDM Views
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 19
Datenbank Zeit reduzieren
Wartezeit reduzieren
Durchsatz Erhöhung
Ohne Resourcenänderung
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 20
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 21
ADDM
Analyse
CPU
Bottlenecks
High-load
SQL
Statements
RAC global
cache
interconnect,
Wartezeit
Concurrency
Gleichzeitig
keit
Hot objects
und Top
SQLs
Memory
Strukturen
I/O
Durchsatz
High-load
PL/SQL
Applikation
Datenbank
Parameter
 Diagnostic Connection
◦ Real Time
◦ Emergency
 Normal Connection
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 22
 Emergency Monitoring“ und „Spot ADDM“„
◦ Unterstützt bei der Ursachenforschung:
 Datenbank hängt
 Login nicht mehr möglich
◦ Schlägt Lösungen vor ohne Neustart der Datenbank.
◦ Die Analyse Informationen stammen in Echtzeit aus der SGA:

 Blockierende Sessions,
 Deadlocks und andere Hänger
 Shared pool connection,
 Object Locks ,
 Top Aktivitäten und andere Ausnahmesituationen
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 23
Datenbank langsam
oder hängt
Anmeldung
ist möglich
Emergency
Monitoring
Normale
Connection
View
• ASH data
• Hang data
Starte Analyse
• Hang Analysis Data
• I/O Metriken
• Host Metriken
View
• Analyse Ergebnis
• Empfehlung
• Hang Data
• Top Activity Snapshot
Empfehlungen folgen
oder Datenbank Instanz
runterfahrenSR an Oracle?
Blocker
session?
Kill session
Andere
blockers?
System
ok?
Ende
Emergency
analysis?
Real-Time
ADDM
Yes
Yes
No
No
No
Yes
Yes
No
In Anlehnung an Oracle Dokumentation
No
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 24
1. Trigger
2. Trigger Control
3. Analyse- MODE
4. Diagnose- MODE
5. Real Time ADDM Report
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 25
 AWR Tabellen gibt es in 3 verschiedenen Bereichen
◦ Metadata (WRM$ …)
◦ Historische Daten (WRH$ …)
◦ AWR Tabellen der Advisory Funktionen (WRI$ …)
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 26
Mittwoch, 16. Dezember
2015
AW$AWREPORT AWRRPT_TEXT_TYPE_TABLE DBMS_FEATURE_AWR
AWRRPT_HTML_TYPE_TABLE DBA_HIST_SNAPSHOT DBMS_WORKLOAD_REPOSITORY
AWRRPT_INSTANCE_LIST_TYPE DBMS_AWR_REPORT_LAYOUT
 Ändern mit dem DBMS_WORKLOAD_REPOSITORY
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT
DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id =>
22, high_snap_id => 32, dbid => 3310949047 )
 Änderung des Defaults auf 18 Tage Aufbewahrung und 30 Minuten
Interval
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention
=> 43200, interval => 30, topnsql => 100, dbid => 3310949047);
 Setze ich das Interval auf 0 so wird kein Snapshot erzeugt
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 27
Mittwoch, 16. Dezember
2015
 Oracle empfiehlt, in Zeiten guter Performance eine Baseline
als Referenz zu ziehen, damit diese in Zeiten schlechter
Performance herangezogen werden kann
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270,
end_snap_id => 280, baseline_name => 'peak baseline', dbid =>
3310949047, expiration => 30);
 Wie groß wird das AWR
?/rdbms/admin/awrinfo.sql
 AWR-Daten extrahieren
?/rdbms/admin/awrextr.sql
 Import der AWR-Daten in eine andere DATENBANK
?/rdbms/admin/awrload.sql
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 28
Mittwoch, 16. Dezember
2015
 ?/rdbms/admin/awrrpt.sql – Nonrac
 ?/rdbms/admin/awrqrpt.sql - RAC
 ?/rdbms//admin/awrrpti.sql -- RAC 1 Inst
 ?/rdbms/admin/awrsqrpt.sql – 1 Sqlstat
 ?/rdbms/awrddrpt.sql – Vergleich
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 29
Mittwoch, 16. Dezember
2015
 awrddrpi.sql Reports on differences between snapshot pairs
 awrddrpt.sql Defaults the dbid and instance number
 awrextr.sql Extracts AWR data into a .DMP file
 awrgdrpi.sql AWR global compare period report
 awrgdrpt.sql AWR global difference report
 awrgrpt.sql AWR global report
 awrgrpti.sql AWR RAC global report
 awrinfo.sql Output general AWR information
 awrload.sql Supports loading DUMP file data into AWR
 awrrpt.sql Defaults to current instance
 awrrpti.sql Select dbid and instance
 awrsqrpi.sql Difference report between two snapshots sql Statements
 awrsqrpt.sql Same as awrsqrpi but defaults dbid & instance
 awrupd12.sql Updates AWR data to version 12c.
Nur die AWR Daten werden geändert, die vorher mit aus einer früheren Version
geladen wurden oder aus einer anderen DB
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 30
 Vorbereitung:
◦ Kenne dein System mit normaler Performance
◦ Mache ein Konzept für Performancemessung und Tuning
◦ Habe “normale” AWR/Statspack Snapshots als Referenz
◦ Baselines verschiedener Loads
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 31
Mittwoch, 16. Dezember
2015
1. Statistiken sammeln von
Betriebssystem
Datenbank
Anwendung
2. Durchsuche die Daten nach Performance-Problemen
3. Erstelle eine Liste der Probleme und Fehler
4. Bilde ein Konzept oder Modell, was passiert ist, anhand der
gesammelten Daten
5. Implementiere anhand der Analyse die Änderungen und monitore
diese Änderungen
6. Überprüfe ob die Performanceziele erreicht wurden
7. Wiederhole die Schritte
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 32
Mittwoch, 16. Dezember
2015
 Kann generiert werden im EM Express oder mit folgendem Script:
 SQL> @$ORACLE_HOME/rdbms/admin/perfhubrpt.sql
 Summary Tab
 Activity Tab
 Workload Tab
 RAC Tab
 Monitored SQL Tab
 ADDM Tab

 The Current ADDM Findings tab real-time analysis für letzte 5 Minuten

Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 33
 Kann generiert werden im EM Express oder mit folgendem Script:


Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 34
Der Einstieg in die Analyse erfolgt über die
DB Time und die Top 5 Timed Wait Events
In Oracle 12c Top 10 Timed Wait Events
1. Report Header mit DB Time anschauen
2. Top-5-Wait-Events
3. Für weitere Analsyse in den Abschnitt
gehen, aus dem die Top-5-WaitEvents
stammen
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 36
Mittwoch, 16. Dezember
2015
Snap Id Snap Time Sessions Curs/Sess
--------- ------------------- -------- ---------
Begin Snap: 13751 18-Jun-10 10:00:42 1,360 137.1
End Snap: 13752 18-Jun-10 11:00:11 1,613 162.9
Elapsed: 59.48 (mins)
DB Time: 863.08 (mins)
DB Time ist die Gesamtzeit aller user Prozesse, die entweder active
arbeiten oder active warten in ihrer Datenbankanfrage .
 Average Active Sessions = Total DB time / Wall Clock Elapsed Time
 DB Time beinhaltet nur foreground sessions incl. CPU time, IO time und
wait time, excludes idle wait time
 In diesem Beispiel haben wir 1360 Sessions in der Sämple Periode
 Active sessions werden 1 mal pro Sekunde gesammelt
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 37
Mittwoch, 16. Dezember
2015
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 38
SQL> @?/rdbms/admin/addmrpt.sql
ADDM Reports ansehen
DBMS_ADDM.GET_REPORT function:
DBMS_ADDM.GET_REPORT ( task_name IN VARCHAR2 RETURN CLOB);
SET LONG 1000000 PAGESIZE 0;
SELECT DBMS_ADDM.GET_REPORT(:tname) FROM DUAL;
Select
DBMS_ADDM.REAL_TIME_ADDM_REPORT() from dual;
REAL_TIME_ADDM_REPORT
--------------------------------------------------------
<report db_version="12.1.0.1.0" inst_count="1" cpu_cores="4"
hyperthread="N" con
Mittwoch, 16. Dezember
2015
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics 39
Mittwoch, 16. Dezember
2015
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics 40
Mittwoch, 16. Dezember
2015
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics 41
3) Load Profile:
 Einheit seconds und Transactions per second.
 Wichtig um das Verhalten der Instanz zu verstehen
 Sollte mit dem Baseline Report verglichen werden
 Zum Vergleich mit dem expected load auf der Maschine das Delta zur
schlechten Performance Zeit
Load Profile Per Second Per Transaction
--------------- ---------------
Redo size: 851,303.02 7,729.46
Logical reads: 146,512.51 1,330.27
Block changes: 5,413.90 49.16
Physical reads: 2,296.44 20.85
Physical writes: 141.63 1.29
User calls: 637.38 5.79
Parses: 403.32 3.66
Hard parses: 11.29 0.10
Sorts: 793.12 7.20
Logons: 3.15 0.03
Executes: 8,291.92 75.29
Transactions: 110.14
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 42
Mittwoch, 16. Dezember
2015
 4)Instance Efficiency Percentages (Target 100%):
 dient als Indikator
 buffer cache hit, library cache hit,parses etc.
 diese Werte können hoch oder niedrig sein in Abhängigkeit der Datenbank
Aktivität, muß kein Performance Problem darstellen

 . % Blocks changed per Read: 3.70 Recursive Call %: 95.81
 Rollback per transaction %: 0.73 Rows per Sort: 27.22
 Instance Efficiency Percentages (Target 100%)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Buffer Nowait %: 99.87 Redo NoWait %: 99.98
 Buffer Hit %: 98.49 In-memory Sort %: 100.00
 Library Hit %: 99.65 Soft Parse %: 97.20
 Execute to Parse %: 95.14 Latch Hit %: 99.16
 Parse CPU to Parse Elapsd %: 3.59 % Non-Parse CPU: 99.85
Guter Wert
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 44
Mittwoch, 16. Dezember
2015
6) Top 5 Timed Events bis Statspack Oracle 12.1.0.2 :
Wichtigstes Kapitel, zeigt welches Wait Event zu wieviel %
von der DB Zeit gesehen wurde
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait
Class
---------------------------------------- ----------- ------ ------ ----------
db file sequential read 226,973,391 1,086,316 5 35.6 User I/O
CPU time 680,549 22.3
db file scattered read 27,397,666 81,533 3 2.7 User I/O
read by other session 36,385,854 77,520 2 2.5 User I/O
latch: cache buffers chains 2,453,426 21,920 9 0.7 Concurrenc
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 46
Mittwoch, 16. Dezember
2015
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 47
 Hier wird der I/O Durchsatz für die Datenbank gezeigt .Die Information im Load Profile Bereich des
AWR Reports sind nicht nachvollziehbare Werte enthalten. Oder untersuchen Sie den Activity Stats
Bereich mit der Sum Total für physical reads und writes (und redo).

Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 48
 2) Cache Sizes :
 Größe der SGA Region nachdem AMM sie geändert hat
Diese Information kann mit den original init.ora
Parametern am Ende des AWR Reports vgl werden.
Wird mehr shared pool verwendet als buffer cache
 Prüfe Bind Variablen ja oder nein
Cache Sizes
Begin End
---------- ----------
Buffer Cache: 10,000M 10,000M
Std Block Size: 16K
Shared Pool Size: 3,008M 3,008
Log Buffer: 276,464K
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 49
Mittwoch, 16. Dezember
2015
 Memory sizes wie DB cache size and shared pool
size können auf Probleme hinweisen
 Zum Beispiel
◦ shared pool > DB cache size
◦ => Weist auf fehlende Bind Variablen hin
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 50
Mittwoch, 16. Dezember
2015
 5) Shared Pool Statistics:
Wie ändert sich der shared pool während der snapshot Periode., 91-93% des Memory wird
vom Shared Pool benutzt.
 % SQL with executions>1:Wieviel % der SQL werden mehr als 1 Mal benutzt
Shared Pool Statistics Begin End
------ ------
Memory Usage %: 93.75 91.61
% SQL with executions>1: 98.17 78.35
% Memory for SQL w/exec>1: 95.95 85.08
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 51
Mittwoch, 16. Dezember
2015
1. OLTP
• Viele kleine Transaktionen, oft hat 1 Query nur 1 Zeile als
• Ergebnis deshalb Effiziente SQL Abfragen
• Read to Write 5:1 bis 10:1
Häufige Benutzung selektiver Indexe
=> Augenmerk auf Redo/Undo und sequential read waits
2. Batch oder Data Warehouse
• Viele Reads DISK I/O Lastig
Wenig Writes (außer Temp wegen Sorts)
Wenig große Transactions
=> Augenmerk auf sort/workarea und scattered read
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 52
Mittwoch, 16. Dezember
2015
Event Maßnahme
------------------------------------------------------
db file scattered read v$sqlarea, v$filestat full table scans
db file sequential read v$sqlarea, v$filestat , Indexhints
buffer busy waits block contention v$session
free buffer waits write time os statistik prüfen
log buffer space redo buffer allocation retries in v$sysstat
log file sync number of transactions(commit+rollbacks) v$sysstat
enqueue waits v$enqueue_stat locks prüfen
library cache,pin,lock v$sqlarea sql statements mit hoher anzahl von parse
calls child cursors(version_count)
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 53
Mittwoch, 16. Dezember
2015
 db file sequential read
 Der Server Prozess wartet auf diesen Event nach einer
singleblock I/O Operation
 Tritt auf während index unique oder range scans, table access
by rowid , etc
 Dieser Event muß nicht unbedingt ein Bottleneck sein, Indexe
werden gelesen ebenso table blocks
 Jedoch als Maßnahme kann man die SQL Statements prüfen ,
ob z.B. unnötige „INDEX“ Hints vergeben wurden
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 55
Mittwoch, 16. Dezember
2015
 db file scattered read
 Wartezeiten im Multiblock Bereich entstehen bei Full table
scan operationen auf Tabellen oder Fast Full Scan Zugriffen
auf Indices
 ( init.ora Parameter db_file_multiblock_read_count reduziert
I/O Operationen) kann aber auch full tablescans erzwingen
 Bsp. db block ist 8k db_file_multiblock_read_count =8
daraus folgt ein single multiblock I/O ist 64K groß dieser
Wert ist abhängig vom Operating System und Storage
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 56
Mittwoch, 16. Dezember
2015
 Read By Other Session Wait Event [ID 732891.1]
 War früher buffer busy wait
 Versuchter Zugriff auf einen buffer im buffer cache , aber der buffer wird gerade von
disk von einem anderen user gelesen, es muß gewartet werden bis der Lesezugriff
beendet ist, bis man wieder darauf zugreifen kann
 SELECT p1 "file#", p2 "block#", p3 "class#"
FROM v$session_wait WHERE event = 'read by other session';
 Wird hier derselbe block wiederholt angezeigt , so haben wir vermutlich
 Einen "hot" block oder object.
SELECT relative_fno, owner, segment_name, segment_type FROM dba_extents
WHERE file_id = &file
AND &block BETWEEN block_id AND block_id + blocks - 1;
 Siehe auch NOTE:34405.1 - WAITEVENT: "buffer busy waits" Reference Note
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 57
Mittwoch, 16. Dezember
2015
 Könnte auf einen Hot block hinweisen
 Grund für diesen Latch kann sein
 1. Sequence Number Generation Code um eine Zeile in einer
Tabelle upzudaten
 2. Index Leaf Chasing = Viele Prozesse suchen denselben
Index - Applikationsproblem?
 Metalink ID 163424.1 how to find the hot block
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 58
Mittwoch, 16. Dezember
2015
9) Wait Class
Welche wait class weist auf Contention hin. Welcher Bereich sollte
untersucht werden network, concurrency, cluster, i/o Application,
configuration etc.
Wait Class DB/Inst: OLTP/OLTP Snaps: 13694-13753
-> s - second
-> cs - centisecond - 100th of a second
-> ms - millisecond - 1000th of a second
-> us - microsecond - 1000000th of a second
-> ordered by wait time desc, waits desc
Avg
%Time Total Wait wait Waits
Wait Class Waits -outs Time (s) (ms) /txn
-------------------- ---------------- ------ ---------------- ------- ---------
User I/O 301,011,884 .0 1,259,029 4 12.9
Concurrency 8,384,040 5.2 51,800 6 0.4
System I/O 16,813,457 .0 45,012 3 0.7
Configuration 326,248 11.7 17,891 55 0.0
Administrative 2,028,810 .0 9,351 5 0.1
Commit 1,541,707 .0 8,518 6 0.1
Application 523,352 .3 7,745 15 0.0
Other 4,374,811 3.3 6,482 1 0.2
Network 137,115,426 .0 2,030 0 5.9
-------------------------------------------------------------
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 59
Mittwoch, 16. Dezember
2015
Haupt wait events in der Datenbank. foreground and background
database wait events as well as time model, operating system, service,
and wait classes statistics.
> s - second -> cs - centisecond - 100th of a second-> ms - millisecond - 1000th of a second
-> us - microsecond - 1000000th of a second-> ordered by wait time desc, waits desc (idle events last)
Avg
%Time Total Wait wait Waits
Event Waits -outs Time (s) (ms) /txn
---------------------------- -------------- ------ ----------- ------- ---------
db file sequential read 226,973,391 .0 1,086,316 5 9.7
db file scattered read 27,397,666 .0 81,533 3 1.2
read by other session 36,385,854 .0 77,520 2 1.6
latch: cache buffers chains 2,453,426 .0 21,920 9 0.1
log file parallel write 12,792,937 .0 21,448 2 0.5
log file switch (checkpoint 44,546 19.5 16,044 360 0.0
RMAN backup & recovery I/O 317,245 .0 13,387 42 0.0
buffer busy waits 3,959,062 .1 12,573 3 0.2
Backup: sbtwrite2 2,026,139 .0 8,996 4 0.1
log file sync 1,541,707 .0 8,518 6 0.1
direct path write temp 1,377,867 .0 2,708 2 0.1
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 60
Mittwoch, 16. Dezember
2015
 Statspack AWR Beispiel
 Reads und Writes beinhalten den größten Teil der Total
database time
 Erhöhe RAM: durch Erhöhung der db_cache_size eine
Reduktion des disk I/O
 Tune SQL to reduce disk I/O
 Faster disk I/O sub-system
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 61
Mittwoch, 16. Dezember
2015
• SQL Statistics:
 SQL ordered by Elapsed Time
 SQL ordered by CPU Time
 SQL ordered by Gets
 SQL ordered by Reads
 SQL ordered by Executions
 SQL ordered by Parse Calls
 SQL ordered by Sharable Memory
 SQL ordered by Version Count
 Complete List of SQL Text
kommen dieselben Statements im Top Bereich vor, prüfen ob
Statement Tuning nötig ist.
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 62
Mittwoch, 16. Dezember
2015
 Um die Kalibrierung mit dem Database Resource Manager nutzen zu können, müssen verschiedene
Vorrausetzungen eingehalten werden:
 1. eingesetzte Datenbankversion >=11.1
 2. aufrufender Benutzer hat SYSDBA-Privileg
 3. asynchrones I/O ist aktiviert (DISC_ASYNCH_IO=TRUE und
 4. FILESYSTEMIO_OPTIONS=SETALL)
 5. zum Zeitpunkt der Calibration geringe Last auf der Datenbank
 Die Datenbank muss zumindest um eine 10er Potenz größer sein wie der CACHE im Storage bzw.
Infrastruktur (zB: IBM SVC,...)
 SAS Disken: 150-250 IOPS, 100-200 MBPS, 4-6ms Latency
 SATA Disken: 50-150 IOPS, 70-150 MBPS, 8-12ms Latency
 SSD: 30.000 - 150.000 IOPS, 250-1200 MBPS, <1ms Latency
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 63
 Seit Oracle 11g gibt es im Database Resource Manager die I/O Calibration Utility.
 Damit können die Höchstwerte für IOPS und MB/sec ermittelt werden.
 DBMS_RESOURCE_MANAGER.CALIBRATE_IO procedure
 SET SERVEROUTPUT ON
 DECLARE
lat INTEGER;
 iops INTEGER;
 mbps INTEGER;
 BEGIN
 -- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);
 DBMS_RESOURCE_MANAGER.CALIBRATE_IO (60, 20, iops, mbps, lat); DBMS_OUTPUT.PUT_LINE
('max_iops = ' || iops); DBMS_OUTPUT.PUT_LINE ('latency = ' || lat); dbms_output.put_line('max_mbps =
' || mbps);
 end; /
 select * from V$IO_CALIBRATION_STATUS ;
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 64
 START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY
DISKS
 ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------
 10-DEZ-015 12:55:13 10-DEZ-015 13:23:28 2445 125 134 21 60
 START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY
DISKS
 ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------
 10-DEZ-015 13:52:41 10-DEZ-015 14:23:14 837 319 181 11 60
 START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY
DISKS
 ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------
 10-DEZ-015 14:30:19 10-DEZ-015 14:57:18 3498 343 136 19 60
 START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY
DISKS
 ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------
 10-DEZ-015 15:22:38 10-DEZ-015 15:36:43 1714 760 152 18 1
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 65

 Metalink
 Segment Statistiks id 762526,1
 AWR Performance Statisics ID 1359094.1
 Der Oracle DBA Hanser Verlag
 OCP 11G Oracle Pub
Mittwoch, 16. Dezember
2015
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 66
68
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
 Telefon: +49 172 205 8483
 angelika@gallwitz-it.de
 www.gallwitz-it.de
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR 69
Mittwoch, 16. Dezember
2015

Weitere ähnliche Inhalte

Ähnlich wie Angelika Gallwitz – IT-Tage 2015 – Statistische Auswertungen in Oracle mit Statspack und AWR

PureSQL APEX Connect
PureSQL APEX ConnectPureSQL APEX Connect
PureSQL APEX ConnectTrivadis
 
Pure SQL for batch processing
Pure SQL for batch processingPure SQL for batch processing
Pure SQL for batch processingAndrej Pashchenko
 
Oracle workshop sessiontracing
Oracle workshop sessiontracingOracle workshop sessiontracing
Oracle workshop sessiontracingciganek
 
What's new in SQL und PL/SQL in 12.2
What's new in SQL und PL/SQL in 12.2What's new in SQL und PL/SQL in 12.2
What's new in SQL und PL/SQL in 12.2Ulrike Schwinn
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...OPITZ CONSULTING Deutschland
 
Oracle Performance-Analyse mit frei verfügbaren Mitteln
Oracle Performance-Analyse mit frei verfügbaren Mitteln Oracle Performance-Analyse mit frei verfügbaren Mitteln
Oracle Performance-Analyse mit frei verfügbaren Mitteln OPITZ CONSULTING Deutschland
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
 
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2dayElegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2dayMario-Leander Reimer
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
Secure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstSecure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstCarsten Muetzlitz
 
Implementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerImplementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerMartin Obst
 
Hekaton & CSI Version 2 unter der Lupe
Hekaton & CSI Version 2 unter der LupeHekaton & CSI Version 2 unter der Lupe
Hekaton & CSI Version 2 unter der Lupeinovex GmbH
 
Ausgewählte PL/SQL Packages (3)
Ausgewählte PL/SQL Packages (3)Ausgewählte PL/SQL Packages (3)
Ausgewählte PL/SQL Packages (3)Ulrike Schwinn
 
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej PashchenkoDésirée Pfister
 
Sensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle DatenbankSensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle DatenbankUlrike Schwinn
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...NETWAYS
 
Automatisiertes disaster recovery testing mit der oracle cloud
Automatisiertes disaster recovery testing mit der oracle cloudAutomatisiertes disaster recovery testing mit der oracle cloud
Automatisiertes disaster recovery testing mit der oracle cloudTrivadis
 

Ähnlich wie Angelika Gallwitz – IT-Tage 2015 – Statistische Auswertungen in Oracle mit Statspack und AWR (20)

PureSQL APEX Connect
PureSQL APEX ConnectPureSQL APEX Connect
PureSQL APEX Connect
 
Pure SQL for batch processing
Pure SQL for batch processingPure SQL for batch processing
Pure SQL for batch processing
 
5min analyse
5min analyse5min analyse
5min analyse
 
Performance-Analyse mit Bordmitteln
Performance-Analyse mit BordmittelnPerformance-Analyse mit Bordmitteln
Performance-Analyse mit Bordmitteln
 
Oracle workshop sessiontracing
Oracle workshop sessiontracingOracle workshop sessiontracing
Oracle workshop sessiontracing
 
What's new in SQL und PL/SQL in 12.2
What's new in SQL und PL/SQL in 12.2What's new in SQL und PL/SQL in 12.2
What's new in SQL und PL/SQL in 12.2
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
 
Oracle Performance-Analyse mit frei verfügbaren Mitteln
Oracle Performance-Analyse mit frei verfügbaren Mitteln Oracle Performance-Analyse mit frei verfügbaren Mitteln
Oracle Performance-Analyse mit frei verfügbaren Mitteln
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2dayElegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
Elegantes In-Memory Computing mit Apache Ignite und Kubernetes. @data2day
 
In-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und KubernetesIn-Memory Computing mit Apache Ignite und Kubernetes
In-Memory Computing mit Apache Ignite und Kubernetes
 
Secure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin ObstSecure Technical Implementation Guide for databases by Martin Obst
Secure Technical Implementation Guide for databases by Martin Obst
 
Implementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise ManagerImplementierbare Sicherheitsregeln im Enterprise Manager
Implementierbare Sicherheitsregeln im Enterprise Manager
 
Hekaton & CSI Version 2 unter der Lupe
Hekaton & CSI Version 2 unter der LupeHekaton & CSI Version 2 unter der Lupe
Hekaton & CSI Version 2 unter der Lupe
 
Ausgewählte PL/SQL Packages (3)
Ausgewählte PL/SQL Packages (3)Ausgewählte PL/SQL Packages (3)
Ausgewählte PL/SQL Packages (3)
 
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
12c SQL Pattern Matching wann werde ich das benutzen Andrej Pashchenko
 
Sensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle DatenbankSensitive Daten in der Oracle Datenbank
Sensitive Daten in der Oracle Datenbank
 
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
 
Automatisiertes disaster recovery testing mit der oracle cloud
Automatisiertes disaster recovery testing mit der oracle cloudAutomatisiertes disaster recovery testing mit der oracle cloud
Automatisiertes disaster recovery testing mit der oracle cloud
 

Angelika Gallwitz – IT-Tage 2015 – Statistische Auswertungen in Oracle mit Statspack und AWR

  • 2. Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 1 Mittwoch, 16. Dezember 2015
  • 3.  DBA Datenbankadministrator  Seit 1984 in der IT tätig  Seit 1987 mit Oracle Datenbanken  Als Entwickler und Datenbankadministrator Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 2 Mittwoch, 16. Dezember 2015
  • 4. 1. Einleitung 2. Oracle 12c Neuerungen 3. Systemvorraussetzungen 4. Perfstat Schema einrichten, Statspack Reports 5. ADDM und AWR Architektur 6. ADDM Ablauf 7. AWR Reports 8. Leitfaden zur Auswertung 9. Massnahmen I/O Durchsatz Messung Calibration Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 3 Mittwoch, 16. Dezember 2015
  • 5.  Die Automatischen Features der Performance Diagnose in der Oracle Datenbank 12c.  Statspack-Reports bzw. AWR Reports werden herangezogen, um Performance Engpässe zu erkennen und Maßnahmen zu ergreifen. Wie erzeuge und interpretiere ich einen Statistik Report. Wie verändere ich Snap Level und Threshold.  Im AWR Repository werden aktuelle und historischen Performance Statistiken abgespeichert.  Der (ADDM) durchläuft ein Set vordefinierter Kriterien, nach denen die aktuelle Performance der Datenbank analysiert wird .  Nachdem ein Problem identifiziert und analysiert worden ist, hilft der ADDM selbst Probleme zu beheben  Mit Statspack ADDM-, ASH- und AWR-Reports können Probleme und Statistiken sofort oder nachträglich analysiert werden.  Der ADDM analysiert Performance Probleme direkt nach dem Auftreten des Events.  ADDM sollte von DBAs zuerst benutzt werden, wenn ein Performance Problem bemerkt wird.  Es wird anhand der Wait-Events eine Zuordnung zu den Problembereichen vorgenommen und Empfehlungen zu Tuning Maßnahmen gegeben 4 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR Mittwoch, 16. Dezember 2015
  • 6.  Neue Idle Events in den Reports: LogMiner, PQ, SQL*Net, Capture Reply  In der Performance Analyse und Diagnose durch den "Real Time ADDM".  SQL Monitor-,ASH-, ADDM und AWR – Reports zeigen jetzt Statistiken von „In-Memory“ Operationen  AWR Report hat neue Sektionen - In-Memory Segments Statistics – IO Statistik.  Der ADDM kann in unterschiedlichen Connection Modi gefahren werden.  Der „Real-Time ADDM“ mit dem Emergency Feature hilft die Ursachen und Lösungen zu finden, wenn die Datenbank hängt.   Performance Hub Active Report  PGA_AGGREGATE_LIMIT kann jetzt gesetzt werden Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 5
  • 7. ADDM und AWR sind standardmäßig eingeschaltet und werden gesteuert über den Parameter Control_management_pack_access: timed_statistics = true statistics_level = [typical|all] /* ausschalten mit „BASIC“ Control_management_pack_access=diagnostic/diagnostic+tuning /* ausschalten mit None Systemstatistiken müssen vorhanden sein: dbms_stats.gather_system_stats(gathering_mode=>'start'); Nach 30 Minuten dbms_stats.gather_system_stats(gather_mode=>'stop'); Für I/O Statistiken z.B. average read time benötigen Sie Ihre Hardwarespezifischen Antwortzeiten normale Werte liegen zw. 5000 u. 20000 Microsekunden Execute dbms_advisor.set_default_task_parameter(‚ADDM‘, ‚DBIO_EXPECTED‘, 8000); Iostat –d 5 Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 6
  • 8. SQL> SELECT statistics_name, activation_level, Session_settable, session_status, statistics_view_name FROM v$statistics_level ORDER BY 1 STATISTICS_NAME ACTIVAT SES SESSION_ STATISTICS_VIEW_NAME ---------------------------------------------------------------- ------- --- -------- -------------------------- OLAP row load time precision TYPICAL YES ENABLED Automatic DBOP Monitoring TYPICAL YES ENABLED V$SQL_MONITOR Active Session History TYPICAL NO ENABLED V$ACTIVE_SESSION_HISTORY Adaptive Thresholds Enabled TYPICAL NO ENABLED Automated Maintenance Tasks TYPICAL NO ENABLED Bind Data Capture TYPICAL NO ENABLED V$SQL_BIND_CAPTURE Buffer Cache Advice TYPICAL NO ENABLED V$DB_CACHE_ADVICE Global Cache Statistics TYPICAL NO ENABLED Longops Statistics TYPICAL NO ENABLED V$SESSION_LONGOPS MTTR Advice TYPICAL NO ENABLED V$MTTR_TARGET_ADVICE Modification Monitoring TYPICAL NO ENABLED PGA Advice TYPICAL NO ENABLED V$PGA_TARGET_ADVICE Plan Execution Sampling TYPICAL YES ENABLED V$ACTIVE_SESSION_HISTORY Plan Execution Statistics ALL YES ENABLED V$SQL_PLAN_STATISTICS SQL Monitoring TYPICAL YES ENABLED V$SQL_MONITORING Segment Level Statistics TYPICAL NO ENABLED V$SEGSTAT Shared Pool Advice TYPICAL NO ENABLED V$SHARED_POOL_ADVICE Streams Pool Advice TYPICAL NO ENABLED V$STREAMS_POOL_ADVICE Threshold-based Alerts TYPICAL NO ENABLED Time Model Events TYPICAL YES ENABLED V$SESS_TIME_MODEL Timed OS Statistics ALL YES ENABLED Timed Statistics TYPICAL YES ENABLED Ultrafast Latch Statistics TYPICAL NO ENABLED Undo Advisor, Alerts and Fast Ramp up TYPICAL NO ENABLED V$UNDOSTAT V$IOSTAT_* statistics TYPICAL NO ENABLED Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 7
  • 9.  SQL> select pname, pval1 from sys.aux_stats$ ; PNAME PVAL1 ------------------------------ ---------- STATUS DSTART DSTOP FLAGS 1 CPUSPEEDNW 3161,90476 IOSEEKTIM 10 IOTFRSPEED 4096 SREADTIM ,865 MREADTIM ,161 CPUSPEED 1115 MBRC 0 MAXTHR 1865474048 SLAVETHR 479232 Execute dbms_advisor.set_default_task_parameter(‚ADDM‘, ‚DBIO_EXPECTED‘, 8650); Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 8
  • 10.  Seit Oracle 9.0  sreadtim - single block read time  mreadtim - multiblock read time  mbrc - multi-block read count  cpuspeed - CPU speed  Seit Oracle 9.2  maxthr - maximum I/O throughput  slavethr -average slave throughput  Seit Oracle 10g  cpuspeedNW - Represents noworkload CPU speed  ioseektim - I/O seek time equals seek time + latency time + operating system overhead time.  iotfrspeed - I/O transfer speed is the rate at which an Oracle database can read data in a single read request  How to Set Different System Statistics for the Instance Doc Id 149560.1 Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 9
  • 11. • Seit Oracle 8.1.7 bis heute unterstützt • Sinnvoll einsetzbar, wenn keine Diagnostik Pack Lizenz vorhanden ist • Ist vergleichbar mit dem AWR Report • Speichert die Performance Statistik Daten permanent in Oracle Tabellen im Schema des Users perfstat • Die gesammelten Daten können über den Statspack- Report analysiert werden Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 10 Mittwoch, 16. Dezember 2015
  • 12. • Schema perfstat anlegen • ?/rdbms/admin/spcreate.sql • Automatisierung • /rdbms/admin/spauto.sql • Report erstellen • ?/rdbms/admin/spreport.sql • Perfstat-User löschen • ?/rdbms/admin/spdrop.sql • Perfstat-Daten löschen • ?/rdbms/admin/spdrop/sppurge.sql • Readme • ?/rdbms/admin/spdoc.txt Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 11 Mittwoch, 16. Dezember 2015
  • 13. • $ORACLE_HOME/rdbms/admin/sprepins.sql Genereller Instance Healthcheck • $ORACLE_HOME/rdbms/admin/sprepsql.sql Report einzelner SQL Statements über hash_value Bsp: • SQL> connect perfstat/perfstat • SQL> execute statspack.snap • SQL> execute statspack.snap SQL> select snap_id,old_hash_value,hash_value from perfstat.stats$sql_summary order by hash_value; • $ORACLE_HOME/rdbms/admin/sprsqins.sql Abfrage dbid ,instance, hash_value Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 12 Mittwoch, 16. Dezember 2015
  • 14.  In Tabelle perfstat.stats$statspack_parameter select * from perfstat.stats$level_description • Levels: 0, 5 ,6 ,7 ,10 • Levels = 5 ist der Default Wert • Level >= 7 beinhaltet zus. Segmentstatistiken  SQL> connect perfstat SQL> execute statspack.snap - (i_snap_level=>7, i_modify_parameter=>'true'); Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 13 Mittwoch, 16. Dezember 2015
  • 15.  Kommt mit der Datenbank seit Oracle 10  Liegt im Schema SYS  Im Tablespace SYSAUX  Ist in jeder Oracle Edition enthalten(SE, EE) Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 14 Mittwoch, 16. Dezember 2015
  • 16.  Snap_level 1 statistics_level = typical  Snap_level 2 statistics_level = all beinhaltet zusätzlich OS Statistiken  control_management_pack_access = diagnostic oder tuning+diagnostic  TIMED_STATISTICS = TRUE  ash_enable = [true|false]  awr_restrict_mode = [true|false]  db_cache_advice = [on|off] Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 15 Mittwoch, 16. Dezember 2015
  • 17. Statspack AWR  Auch für Standard Edition ohne zusätzliche Lizenz  Snap level 1-10  Es muß ein Job eingerichtet werden, der regelmäßig Statistiken sammelt  Es muß ein Job eingerichtet werden, der die gesammelten Statistiken löschen  Statistiken können adhoc gesammelt werden SQL> connect perfstat SQL> execute statspack.snap  Benötigt Diagnostic Pack  Snap Level 1 oder 2  ADDM sammelt automatisch Statistiken 1 x jede Stunde, in 11g werden diese 8 Tage aufbewahrt  Statistiken können adhoc gesammelt werden SQL> connect sys / as sysdba SQL> BEGIN dbms_workload_repository.create _snapshot(); END; Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 16 Mittwoch, 16. Dezember 2015
  • 18. ADDM Selbst- Tuning Komponente Selbst- Tuning Komponente Interne Clients SGA In Memory Statistik- Sammlung SGA Repository der AWR u. ADDM Snapshots MMON Prozess V$ DBA_ WR.$ Externe Clients OEM SQLPlus User- Backgroun d Prozesse Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 17
  • 19.  Automatic Database Diagnostic Monitor, läuft direkt nach jedem AWR Snapshot  Dabei wird im Hintergrund eine eigene Statistiksammlung, das Automatic Workload Repository (kurz AWR) eingesetzt.  Per Default erzeugt Oracle 11g einmal stündlich ein Statistik- Snapshot der Datenbankauslastung  Diese Snapshots werden per Default 8 Tage aufbewahrt 18 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR Mittwoch, 16. Dezember 2015
  • 20. 1. Komponenten Überblick 2. Ziel der ADDM Analyse 3. Problemtypen des ADDM 4. Der "Real Time ADDM„ 5. ADDM Modi 6. ADDM Views Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 19
  • 21. Datenbank Zeit reduzieren Wartezeit reduzieren Durchsatz Erhöhung Ohne Resourcenänderung Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 20
  • 22. Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 21 ADDM Analyse CPU Bottlenecks High-load SQL Statements RAC global cache interconnect, Wartezeit Concurrency Gleichzeitig keit Hot objects und Top SQLs Memory Strukturen I/O Durchsatz High-load PL/SQL Applikation Datenbank Parameter
  • 23.  Diagnostic Connection ◦ Real Time ◦ Emergency  Normal Connection Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 22
  • 24.  Emergency Monitoring“ und „Spot ADDM“„ ◦ Unterstützt bei der Ursachenforschung:  Datenbank hängt  Login nicht mehr möglich ◦ Schlägt Lösungen vor ohne Neustart der Datenbank. ◦ Die Analyse Informationen stammen in Echtzeit aus der SGA:   Blockierende Sessions,  Deadlocks und andere Hänger  Shared pool connection,  Object Locks ,  Top Aktivitäten und andere Ausnahmesituationen Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 23
  • 25. Datenbank langsam oder hängt Anmeldung ist möglich Emergency Monitoring Normale Connection View • ASH data • Hang data Starte Analyse • Hang Analysis Data • I/O Metriken • Host Metriken View • Analyse Ergebnis • Empfehlung • Hang Data • Top Activity Snapshot Empfehlungen folgen oder Datenbank Instanz runterfahrenSR an Oracle? Blocker session? Kill session Andere blockers? System ok? Ende Emergency analysis? Real-Time ADDM Yes Yes No No No Yes Yes No In Anlehnung an Oracle Dokumentation No Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 24
  • 26. 1. Trigger 2. Trigger Control 3. Analyse- MODE 4. Diagnose- MODE 5. Real Time ADDM Report Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 25
  • 27.  AWR Tabellen gibt es in 3 verschiedenen Bereichen ◦ Metadata (WRM$ …) ◦ Historische Daten (WRH$ …) ◦ AWR Tabellen der Advisory Funktionen (WRI$ …) Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 26 Mittwoch, 16. Dezember 2015 AW$AWREPORT AWRRPT_TEXT_TYPE_TABLE DBMS_FEATURE_AWR AWRRPT_HTML_TYPE_TABLE DBA_HIST_SNAPSHOT DBMS_WORKLOAD_REPOSITORY AWRRPT_INSTANCE_LIST_TYPE DBMS_AWR_REPORT_LAYOUT
  • 28.  Ändern mit dem DBMS_WORKLOAD_REPOSITORY DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047 )  Änderung des Defaults auf 18 Tage Aufbewahrung und 30 Minuten Interval DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, interval => 30, topnsql => 100, dbid => 3310949047);  Setze ich das Interval auf 0 so wird kein Snapshot erzeugt Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 27 Mittwoch, 16. Dezember 2015
  • 29.  Oracle empfiehlt, in Zeiten guter Performance eine Baseline als Referenz zu ziehen, damit diese in Zeiten schlechter Performance herangezogen werden kann DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 270, end_snap_id => 280, baseline_name => 'peak baseline', dbid => 3310949047, expiration => 30);  Wie groß wird das AWR ?/rdbms/admin/awrinfo.sql  AWR-Daten extrahieren ?/rdbms/admin/awrextr.sql  Import der AWR-Daten in eine andere DATENBANK ?/rdbms/admin/awrload.sql Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 28 Mittwoch, 16. Dezember 2015
  • 30.  ?/rdbms/admin/awrrpt.sql – Nonrac  ?/rdbms/admin/awrqrpt.sql - RAC  ?/rdbms//admin/awrrpti.sql -- RAC 1 Inst  ?/rdbms/admin/awrsqrpt.sql – 1 Sqlstat  ?/rdbms/awrddrpt.sql – Vergleich Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 29 Mittwoch, 16. Dezember 2015
  • 31.  awrddrpi.sql Reports on differences between snapshot pairs  awrddrpt.sql Defaults the dbid and instance number  awrextr.sql Extracts AWR data into a .DMP file  awrgdrpi.sql AWR global compare period report  awrgdrpt.sql AWR global difference report  awrgrpt.sql AWR global report  awrgrpti.sql AWR RAC global report  awrinfo.sql Output general AWR information  awrload.sql Supports loading DUMP file data into AWR  awrrpt.sql Defaults to current instance  awrrpti.sql Select dbid and instance  awrsqrpi.sql Difference report between two snapshots sql Statements  awrsqrpt.sql Same as awrsqrpi but defaults dbid & instance  awrupd12.sql Updates AWR data to version 12c. Nur die AWR Daten werden geändert, die vorher mit aus einer früheren Version geladen wurden oder aus einer anderen DB Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 30
  • 32.  Vorbereitung: ◦ Kenne dein System mit normaler Performance ◦ Mache ein Konzept für Performancemessung und Tuning ◦ Habe “normale” AWR/Statspack Snapshots als Referenz ◦ Baselines verschiedener Loads Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 31 Mittwoch, 16. Dezember 2015
  • 33. 1. Statistiken sammeln von Betriebssystem Datenbank Anwendung 2. Durchsuche die Daten nach Performance-Problemen 3. Erstelle eine Liste der Probleme und Fehler 4. Bilde ein Konzept oder Modell, was passiert ist, anhand der gesammelten Daten 5. Implementiere anhand der Analyse die Änderungen und monitore diese Änderungen 6. Überprüfe ob die Performanceziele erreicht wurden 7. Wiederhole die Schritte Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 32 Mittwoch, 16. Dezember 2015
  • 34.  Kann generiert werden im EM Express oder mit folgendem Script:  SQL> @$ORACLE_HOME/rdbms/admin/perfhubrpt.sql  Summary Tab  Activity Tab  Workload Tab  RAC Tab  Monitored SQL Tab  ADDM Tab   The Current ADDM Findings tab real-time analysis für letzte 5 Minuten  Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 33
  • 35.  Kann generiert werden im EM Express oder mit folgendem Script:   Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 34
  • 36. Der Einstieg in die Analyse erfolgt über die DB Time und die Top 5 Timed Wait Events In Oracle 12c Top 10 Timed Wait Events 1. Report Header mit DB Time anschauen 2. Top-5-Wait-Events 3. Für weitere Analsyse in den Abschnitt gehen, aus dem die Top-5-WaitEvents stammen Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 36 Mittwoch, 16. Dezember 2015
  • 37. Snap Id Snap Time Sessions Curs/Sess --------- ------------------- -------- --------- Begin Snap: 13751 18-Jun-10 10:00:42 1,360 137.1 End Snap: 13752 18-Jun-10 11:00:11 1,613 162.9 Elapsed: 59.48 (mins) DB Time: 863.08 (mins) DB Time ist die Gesamtzeit aller user Prozesse, die entweder active arbeiten oder active warten in ihrer Datenbankanfrage .  Average Active Sessions = Total DB time / Wall Clock Elapsed Time  DB Time beinhaltet nur foreground sessions incl. CPU time, IO time und wait time, excludes idle wait time  In diesem Beispiel haben wir 1360 Sessions in der Sämple Periode  Active sessions werden 1 mal pro Sekunde gesammelt Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 37 Mittwoch, 16. Dezember 2015
  • 38. Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 38
  • 39. SQL> @?/rdbms/admin/addmrpt.sql ADDM Reports ansehen DBMS_ADDM.GET_REPORT function: DBMS_ADDM.GET_REPORT ( task_name IN VARCHAR2 RETURN CLOB); SET LONG 1000000 PAGESIZE 0; SELECT DBMS_ADDM.GET_REPORT(:tname) FROM DUAL; Select DBMS_ADDM.REAL_TIME_ADDM_REPORT() from dual; REAL_TIME_ADDM_REPORT -------------------------------------------------------- <report db_version="12.1.0.1.0" inst_count="1" cpu_cores="4" hyperthread="N" con Mittwoch, 16. Dezember 2015 Angelika Gallwitz Oracle 12c Automatic Performance Diagnostics 39
  • 40. Mittwoch, 16. Dezember 2015 Angelika Gallwitz Oracle 12c Automatic Performance Diagnostics 40
  • 41. Mittwoch, 16. Dezember 2015 Angelika Gallwitz Oracle 12c Automatic Performance Diagnostics 41
  • 42. 3) Load Profile:  Einheit seconds und Transactions per second.  Wichtig um das Verhalten der Instanz zu verstehen  Sollte mit dem Baseline Report verglichen werden  Zum Vergleich mit dem expected load auf der Maschine das Delta zur schlechten Performance Zeit Load Profile Per Second Per Transaction --------------- --------------- Redo size: 851,303.02 7,729.46 Logical reads: 146,512.51 1,330.27 Block changes: 5,413.90 49.16 Physical reads: 2,296.44 20.85 Physical writes: 141.63 1.29 User calls: 637.38 5.79 Parses: 403.32 3.66 Hard parses: 11.29 0.10 Sorts: 793.12 7.20 Logons: 3.15 0.03 Executes: 8,291.92 75.29 Transactions: 110.14 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 42 Mittwoch, 16. Dezember 2015
  • 43.  4)Instance Efficiency Percentages (Target 100%):  dient als Indikator  buffer cache hit, library cache hit,parses etc.  diese Werte können hoch oder niedrig sein in Abhängigkeit der Datenbank Aktivität, muß kein Performance Problem darstellen   . % Blocks changed per Read: 3.70 Recursive Call %: 95.81  Rollback per transaction %: 0.73 Rows per Sort: 27.22  Instance Efficiency Percentages (Target 100%)  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  Buffer Nowait %: 99.87 Redo NoWait %: 99.98  Buffer Hit %: 98.49 In-memory Sort %: 100.00  Library Hit %: 99.65 Soft Parse %: 97.20  Execute to Parse %: 95.14 Latch Hit %: 99.16  Parse CPU to Parse Elapsd %: 3.59 % Non-Parse CPU: 99.85 Guter Wert Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 44 Mittwoch, 16. Dezember 2015
  • 44. 6) Top 5 Timed Events bis Statspack Oracle 12.1.0.2 : Wichtigstes Kapitel, zeigt welches Wait Event zu wieviel % von der DB Zeit gesehen wurde Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time Wait Class ---------------------------------------- ----------- ------ ------ ---------- db file sequential read 226,973,391 1,086,316 5 35.6 User I/O CPU time 680,549 22.3 db file scattered read 27,397,666 81,533 3 2.7 User I/O read by other session 36,385,854 77,520 2 2.5 User I/O latch: cache buffers chains 2,453,426 21,920 9 0.7 Concurrenc Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 46 Mittwoch, 16. Dezember 2015
  • 45. Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 47
  • 46.  Hier wird der I/O Durchsatz für die Datenbank gezeigt .Die Information im Load Profile Bereich des AWR Reports sind nicht nachvollziehbare Werte enthalten. Oder untersuchen Sie den Activity Stats Bereich mit der Sum Total für physical reads und writes (und redo).  Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 48
  • 47.  2) Cache Sizes :  Größe der SGA Region nachdem AMM sie geändert hat Diese Information kann mit den original init.ora Parametern am Ende des AWR Reports vgl werden. Wird mehr shared pool verwendet als buffer cache  Prüfe Bind Variablen ja oder nein Cache Sizes Begin End ---------- ---------- Buffer Cache: 10,000M 10,000M Std Block Size: 16K Shared Pool Size: 3,008M 3,008 Log Buffer: 276,464K Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 49 Mittwoch, 16. Dezember 2015
  • 48.  Memory sizes wie DB cache size and shared pool size können auf Probleme hinweisen  Zum Beispiel ◦ shared pool > DB cache size ◦ => Weist auf fehlende Bind Variablen hin Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 50 Mittwoch, 16. Dezember 2015
  • 49.  5) Shared Pool Statistics: Wie ändert sich der shared pool während der snapshot Periode., 91-93% des Memory wird vom Shared Pool benutzt.  % SQL with executions>1:Wieviel % der SQL werden mehr als 1 Mal benutzt Shared Pool Statistics Begin End ------ ------ Memory Usage %: 93.75 91.61 % SQL with executions>1: 98.17 78.35 % Memory for SQL w/exec>1: 95.95 85.08 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 51 Mittwoch, 16. Dezember 2015
  • 50. 1. OLTP • Viele kleine Transaktionen, oft hat 1 Query nur 1 Zeile als • Ergebnis deshalb Effiziente SQL Abfragen • Read to Write 5:1 bis 10:1 Häufige Benutzung selektiver Indexe => Augenmerk auf Redo/Undo und sequential read waits 2. Batch oder Data Warehouse • Viele Reads DISK I/O Lastig Wenig Writes (außer Temp wegen Sorts) Wenig große Transactions => Augenmerk auf sort/workarea und scattered read Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 52 Mittwoch, 16. Dezember 2015
  • 51. Event Maßnahme ------------------------------------------------------ db file scattered read v$sqlarea, v$filestat full table scans db file sequential read v$sqlarea, v$filestat , Indexhints buffer busy waits block contention v$session free buffer waits write time os statistik prüfen log buffer space redo buffer allocation retries in v$sysstat log file sync number of transactions(commit+rollbacks) v$sysstat enqueue waits v$enqueue_stat locks prüfen library cache,pin,lock v$sqlarea sql statements mit hoher anzahl von parse calls child cursors(version_count) Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 53 Mittwoch, 16. Dezember 2015
  • 52.  db file sequential read  Der Server Prozess wartet auf diesen Event nach einer singleblock I/O Operation  Tritt auf während index unique oder range scans, table access by rowid , etc  Dieser Event muß nicht unbedingt ein Bottleneck sein, Indexe werden gelesen ebenso table blocks  Jedoch als Maßnahme kann man die SQL Statements prüfen , ob z.B. unnötige „INDEX“ Hints vergeben wurden Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 55 Mittwoch, 16. Dezember 2015
  • 53.  db file scattered read  Wartezeiten im Multiblock Bereich entstehen bei Full table scan operationen auf Tabellen oder Fast Full Scan Zugriffen auf Indices  ( init.ora Parameter db_file_multiblock_read_count reduziert I/O Operationen) kann aber auch full tablescans erzwingen  Bsp. db block ist 8k db_file_multiblock_read_count =8 daraus folgt ein single multiblock I/O ist 64K groß dieser Wert ist abhängig vom Operating System und Storage Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 56 Mittwoch, 16. Dezember 2015
  • 54.  Read By Other Session Wait Event [ID 732891.1]  War früher buffer busy wait  Versuchter Zugriff auf einen buffer im buffer cache , aber der buffer wird gerade von disk von einem anderen user gelesen, es muß gewartet werden bis der Lesezugriff beendet ist, bis man wieder darauf zugreifen kann  SELECT p1 "file#", p2 "block#", p3 "class#" FROM v$session_wait WHERE event = 'read by other session';  Wird hier derselbe block wiederholt angezeigt , so haben wir vermutlich  Einen "hot" block oder object. SELECT relative_fno, owner, segment_name, segment_type FROM dba_extents WHERE file_id = &file AND &block BETWEEN block_id AND block_id + blocks - 1;  Siehe auch NOTE:34405.1 - WAITEVENT: "buffer busy waits" Reference Note Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 57 Mittwoch, 16. Dezember 2015
  • 55.  Könnte auf einen Hot block hinweisen  Grund für diesen Latch kann sein  1. Sequence Number Generation Code um eine Zeile in einer Tabelle upzudaten  2. Index Leaf Chasing = Viele Prozesse suchen denselben Index - Applikationsproblem?  Metalink ID 163424.1 how to find the hot block Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 58 Mittwoch, 16. Dezember 2015
  • 56. 9) Wait Class Welche wait class weist auf Contention hin. Welcher Bereich sollte untersucht werden network, concurrency, cluster, i/o Application, configuration etc. Wait Class DB/Inst: OLTP/OLTP Snaps: 13694-13753 -> s - second -> cs - centisecond - 100th of a second -> ms - millisecond - 1000th of a second -> us - microsecond - 1000000th of a second -> ordered by wait time desc, waits desc Avg %Time Total Wait wait Waits Wait Class Waits -outs Time (s) (ms) /txn -------------------- ---------------- ------ ---------------- ------- --------- User I/O 301,011,884 .0 1,259,029 4 12.9 Concurrency 8,384,040 5.2 51,800 6 0.4 System I/O 16,813,457 .0 45,012 3 0.7 Configuration 326,248 11.7 17,891 55 0.0 Administrative 2,028,810 .0 9,351 5 0.1 Commit 1,541,707 .0 8,518 6 0.1 Application 523,352 .3 7,745 15 0.0 Other 4,374,811 3.3 6,482 1 0.2 Network 137,115,426 .0 2,030 0 5.9 ------------------------------------------------------------- Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 59 Mittwoch, 16. Dezember 2015
  • 57. Haupt wait events in der Datenbank. foreground and background database wait events as well as time model, operating system, service, and wait classes statistics. > s - second -> cs - centisecond - 100th of a second-> ms - millisecond - 1000th of a second -> us - microsecond - 1000000th of a second-> ordered by wait time desc, waits desc (idle events last) Avg %Time Total Wait wait Waits Event Waits -outs Time (s) (ms) /txn ---------------------------- -------------- ------ ----------- ------- --------- db file sequential read 226,973,391 .0 1,086,316 5 9.7 db file scattered read 27,397,666 .0 81,533 3 1.2 read by other session 36,385,854 .0 77,520 2 1.6 latch: cache buffers chains 2,453,426 .0 21,920 9 0.1 log file parallel write 12,792,937 .0 21,448 2 0.5 log file switch (checkpoint 44,546 19.5 16,044 360 0.0 RMAN backup & recovery I/O 317,245 .0 13,387 42 0.0 buffer busy waits 3,959,062 .1 12,573 3 0.2 Backup: sbtwrite2 2,026,139 .0 8,996 4 0.1 log file sync 1,541,707 .0 8,518 6 0.1 direct path write temp 1,377,867 .0 2,708 2 0.1 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 60 Mittwoch, 16. Dezember 2015
  • 58.  Statspack AWR Beispiel  Reads und Writes beinhalten den größten Teil der Total database time  Erhöhe RAM: durch Erhöhung der db_cache_size eine Reduktion des disk I/O  Tune SQL to reduce disk I/O  Faster disk I/O sub-system Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 61 Mittwoch, 16. Dezember 2015
  • 59. • SQL Statistics:  SQL ordered by Elapsed Time  SQL ordered by CPU Time  SQL ordered by Gets  SQL ordered by Reads  SQL ordered by Executions  SQL ordered by Parse Calls  SQL ordered by Sharable Memory  SQL ordered by Version Count  Complete List of SQL Text kommen dieselben Statements im Top Bereich vor, prüfen ob Statement Tuning nötig ist. Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 62 Mittwoch, 16. Dezember 2015
  • 60.  Um die Kalibrierung mit dem Database Resource Manager nutzen zu können, müssen verschiedene Vorrausetzungen eingehalten werden:  1. eingesetzte Datenbankversion >=11.1  2. aufrufender Benutzer hat SYSDBA-Privileg  3. asynchrones I/O ist aktiviert (DISC_ASYNCH_IO=TRUE und  4. FILESYSTEMIO_OPTIONS=SETALL)  5. zum Zeitpunkt der Calibration geringe Last auf der Datenbank  Die Datenbank muss zumindest um eine 10er Potenz größer sein wie der CACHE im Storage bzw. Infrastruktur (zB: IBM SVC,...)  SAS Disken: 150-250 IOPS, 100-200 MBPS, 4-6ms Latency  SATA Disken: 50-150 IOPS, 70-150 MBPS, 8-12ms Latency  SSD: 30.000 - 150.000 IOPS, 250-1200 MBPS, <1ms Latency Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 63
  • 61.  Seit Oracle 11g gibt es im Database Resource Manager die I/O Calibration Utility.  Damit können die Höchstwerte für IOPS und MB/sec ermittelt werden.  DBMS_RESOURCE_MANAGER.CALIBRATE_IO procedure  SET SERVEROUTPUT ON  DECLARE lat INTEGER;  iops INTEGER;  mbps INTEGER;  BEGIN  -- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);  DBMS_RESOURCE_MANAGER.CALIBRATE_IO (60, 20, iops, mbps, lat); DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops); DBMS_OUTPUT.PUT_LINE ('latency = ' || lat); dbms_output.put_line('max_mbps = ' || mbps);  end; /  select * from V$IO_CALIBRATION_STATUS ; Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 64
  • 62.  START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY DISKS  ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------  10-DEZ-015 12:55:13 10-DEZ-015 13:23:28 2445 125 134 21 60  START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY DISKS  ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------  10-DEZ-015 13:52:41 10-DEZ-015 14:23:14 837 319 181 11 60  START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY DISKS  ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------  10-DEZ-015 14:30:19 10-DEZ-015 14:57:18 3498 343 136 19 60  START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY DISKS  ---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------  10-DEZ-015 15:22:38 10-DEZ-015 15:36:43 1714 760 152 18 1 Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 65
  • 63.   Metalink  Segment Statistiks id 762526,1  AWR Performance Statisics ID 1359094.1  Der Oracle DBA Hanser Verlag  OCP 11G Oracle Pub Mittwoch, 16. Dezember 2015 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 66
  • 64. 68 Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR Mittwoch, 16. Dezember 2015
  • 65.  Telefon: +49 172 205 8483  angelika@gallwitz-it.de  www.gallwitz-it.de Angelika Gallwitz Statistische Auswertungen in Oracle mit Statspack und AWR 69 Mittwoch, 16. Dezember 2015