Angelika Gallwitz - Informatik Aktuell

Werbung
www.informatik-aktuell.de
Angelika Gallwitz
Statistische Auswertungen in Oracle mit
Statspack und AWR
Mittwoch, 16. Dezember
2015
1

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
Mittwoch, 16. Dezember
2015
2
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
Mittwoch, 16. Dezember
2015
3


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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
4

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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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]
Control_management_pack_access=diagnostic/diagnostic+tuning
/* ausschalten mit „BASIC“
/* 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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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);
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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 StatspackReport analysiert werden
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
10
•
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
Mittwoch, 16. Dezember
2015
11
•
$ORACLE_HOME/rdbms/admin/sprepins.sql
Genereller Instance Healthcheck
•
$ORACLE_HOME/rdbms/admin/sprepsql.sql
Report einzelner SQL Statements über hash_value
Bsp:
•
•
•
•
SQL>
SQL>
SQL>
SQL>
connect perfstat/perfstat
execute statspack.snap
execute statspack.snap
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
Mittwoch, 16. Dezember
2015
12

•
•
•

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
Mittwoch, 16. Dezember
2015
13

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
Mittwoch, 16. Dezember
2015
14


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
Mittwoch, 16. Dezember
2015
15





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
Statspack




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;
AWR
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
16
SelbstTuning
Komponente
ADDM
SelbstTuning
Komponente
Interne Clients
In Memory
StatistikSammlung
SGA
MMON
Prozess
SGA
V$
UserBackgroun
d Prozesse
Externe
Clients
DBA_
OEM
Repository
der
AWR u.
ADDM
Snapshots
WR.$
SQLPlus
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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 StatistikSnapshot der Datenbankauslastung
Diese Snapshots werden per Default 8 Tage aufbewahrt
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
18
1.
Komponenten Überblick
2.
Ziel der ADDM Analyse
3.
Problemtypen des ADDM
4.
Der "Real Time ADDM„
5.
ADDM Modi
6.
ADDM Views
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
19
Datenbank Zeit reduzieren
Wartezeit reduzieren
Durchsatz Erhöhung
Ohne Resourcenänderung
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
20
CPU
Bottlenecks
High-load
SQL
Statements
Datenbank
Parameter
RAC global
cache
interconnect,
Wartezeit
Applikation
ADDM
Analyse
Concurrency
High-load
PL/SQL
Gleichzeitig
keit
Hot objects
und Top
SQLs
I/O
Durchsatz
Memory
Strukturen
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
21

Diagnostic Connection
◦ Real Time
◦ Emergency

Normal Connection
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
23
Datenbank langsam
oder hängt
Anmeldung
ist möglich
Emergency
analysis?
Yes
No
Yes
Emergency
Monitoring
Real-Time
ADDM
Andere
blockers?
Blocker
session?
Yes
No
Yes
No
No
System
ok?
Ende
Normale
Connection
Starte Analyse
• Hang Analysis Data
• I/O Metriken
• Host Metriken
View
• ASH data
• Hang data
Kill session
No
SR an Oracle?
View
• Analyse Ergebnis
• Empfehlung
• Hang Data
• Top Activity Snapshot
Empfehlungen folgen
oder Datenbank Instanz
runterfahren
Angelika Gallwitz
Statistische Auswertungen in Mittwoch, 16. Dezember
Oracle mit Statspack
und an
AWR
2015
In Anlehnung
Oracle
Dokumentation
24
1.
Trigger
2.
Trigger Control
3.
Analyse- MODE
4.
Diagnose- MODE
5.
Real Time ADDM Report
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
25

AWR Tabellen gibt es in 3 verschiedenen Bereichen
◦ Metadata (WRM$ …)
◦ Historische Daten (WRH$ …)
◦ AWR Tabellen der Advisory Funktionen (WRI$ …)
AW$AWREPORT
AWRRPT_HTML_TYPE_TABLE
AWRRPT_INSTANCE_LIST_TYPE
AWRRPT_TEXT_TYPE_TABLE
DBA_HIST_SNAPSHOT
DBMS_AWR_REPORT_LAYOUT
DBMS_FEATURE_AWR
DBMS_WORKLOAD_REPOSITORY
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
26

Ä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
Mittwoch, 16. Dezember
2015
27

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
Mittwoch, 16. Dezember
2015
28

?/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
Mittwoch, 16. Dezember
2015
29

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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Mittwoch, 16. Dezember
2015
31
1.
Statistiken sammeln von
Betriebssystem
Datenbank
Anwendung
2.
Durchsuche die Daten nach Performance-Problemen
3.
Erstelle eine Liste der Probleme und Fehler
4.
5.
Bilde ein Konzept oder Modell, was passiert ist, anhand der
gesammelten Daten
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
Mittwoch, 16. Dezember
2015
32

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

Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
33

Kann generiert werden im EM Express oder mit folgendem Script:


Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Mittwoch, 16. Dezember
2015
36
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
Mittwoch, 16. Dezember
2015
37
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics
Mittwoch, 16. Dezember
2015
39
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics
Mittwoch, 16. Dezember
2015
40
Angelika Gallwitz Oracle 12c
Automatic Performance
Diagnostics
Mittwoch, 16. Dezember
2015
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
Mittwoch, 16. Dezember
2015
42




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:

Rollback per transaction %:
3.70
0.73
Recursive Call %:
Rows per Sort:

Instance Efficiency Percentages (Target 100%)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95.81
27.22

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
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
~~~~~~~~~~~~~~~~~~
Event
Class
Waits
Time (s)
wait
Call
(ms)
Time Wait
---------------------------------------- ----------- ------ ------ ---------db file sequential read
226,973,391
CPU time
1,086,316
5
680,549
35.6
User I/O
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
2,453,426
21,920
9
0.7 Concurrenc
latch: cache buffers chains
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
46
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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).

Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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
Buffer Cache:
Std Block Size:
Shared Pool Size:
Log Buffer:
Begin
End
---------- ---------10,000M
10,000M
16K
3,008M
3,008
276,464K
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
49


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
Mittwoch, 16. Dezember
2015
50

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
Memory Usage %:
% SQL with executions>1:
% Memory for SQL w/exec>1:
Begin
End
-----93.75
98.17
95.95
-----91.61
78.35
85.08
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
51
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
Mittwoch, 16. Dezember
2015
52
Event
Maßnahme
-----------------------------------------------------db file scattered read
db file sequential read
buffer busy waits
free buffer waits
v$sqlarea, v$filestat full table scans
v$sqlarea, v$filestat , Indexhints
block contention v$session
write time os statistik prüfen
log buffer space
log file sync
enqueue waits
library cache,pin,lock
calls
redo buffer allocation retries in v$sysstat
number of transactions(commit+rollbacks) v$sysstat
v$enqueue_stat locks prüfen
v$sqlarea sql statements mit hoher anzahl von parse
child cursors(version_count)
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
53





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
Mittwoch, 16. Dezember
2015
55




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
Mittwoch, 16. Dezember
2015
56

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
Mittwoch, 16. Dezember
2015
57

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
Mittwoch, 16. Dezember
2015
58
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
-> s
DB/Inst: OLTP/OLTP
Snaps: 13694-13753
- 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
Wait Class
Waits
%Time
Total Wait
wait
Waits
-outs
Time (s)
(ms)
/txn
-------------------- ---------------- ------ ---------------- ------- ---------
User I/O
301,011,884
Concurrency
8,384,040
System I/O
.0
1,259,029
5.2
51,800
16,813,457
.0
326,248
11.7
Administrative
2,028,810
Commit
Configuration
Application
Other
Network
6
0.4
45,012
3
0.7
17,891
55
0.0
.0
9,351
5
0.1
1,541,707
.0
8,518
6
0.1
523,352
.3
7,745
15
0.0
4,374,811
3.3
6,482
1
0.2
137,115,426
.0
2,030
0
5.9
4
12.9
-------------------------------------------------------------
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
59
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
Event
Waits
%Time
Total Wait
wait
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
2,453,426
.0
21,920
9
0.1
latch: cache buffers chains
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
Mittwoch, 16. Dezember
2015
60





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
Mittwoch, 16. Dezember
2015
61
•
SQL Statistics:









SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
ordered
ordered
ordered
ordered
ordered
ordered
ordered
ordered
by
by
by
by
by
by
by
by
Elapsed Time
CPU Time
Gets
Reads
Executions
Parse Calls
Sharable Memory
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
Mittwoch, 16. Dezember
2015
62

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
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
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 ;
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
64

START_TIME
DISKS
END_TIME

---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------

10-DEZ-015 12:55:13

START_TIME
DISKS

---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------

10-DEZ-015 13:52:41

START_TIME
DISKS

---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------

10-DEZ-015 14:30:19

START_TIME
DISKS

---------------------------- ---------------------------- ---------- ---------- ---------- ---------- ----------

10-DEZ-015 15:22:38
10-DEZ-015 13:23:28
END_TIME
10-DEZ-015 14:23:14
END_TIME
10-DEZ-015 14:57:18
END_TIME
10-DEZ-015 15:36:43
MAX_IOPS MAX_MBPS MAX_PMBPS
2445
125
134
21
MAX_IOPS MAX_MBPS MAX_PMBPS
837
319
343
11
136
60
LATENCY
19
MAX_IOPS MAX_MBPS MAX_PMBPS
1714
760
152
Angelika
Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
60
LATENCY
181
MAX_IOPS MAX_MBPS MAX_PMBPS
3498
LATENCY
60
LATENCY
18
1
Mittwoch, 16. Dezember
2015
65


Metalink

Segment Statistiks id 762526,1

AWR Performance Statisics ID 1359094.1

Der Oracle DBA Hanser Verlag

OCP 11G Oracle Pub
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
66
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
68

Telefon: +49 172 205 8483
 [email protected]
 www.gallwitz-it.de
Angelika Gallwitz
Statistische Auswertungen in
Oracle mit Statspack und AWR
Mittwoch, 16. Dezember
2015
69
Herunterladen