Strategisches Tuning Werkzeuge, Analyse

Werbung
Strategisches Tuning – Teil 2
Analyse
TOAD User Konferenz 2007
Dr. Günter Unbescheid
Database Consult GmbH
Agenda
Seminartitel
• Teil 1 – Werkzeuge, Erstellung von Profilen
– Analysestrategien
– Informationsquellen der Versionen 10g und 11g
– Erstellung von Lastprofilen
• Teil 2 – Analyse von Lastprofilen
– Analysetools
– Beispielreports
– Typisches: CPU-Zeiten, Wait Events, SQL Zugriffspläne
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 2 von 71
1
Seminartitel
Teil 2: Analyse
Analysetools
10/2007
©Database Consult GmbH - Jachenau
Folie 3 von 71
Ausgangspunkt
Seminartitel
...Tracefiles liegen
liegen vor...
vor...
...Tracefiles
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 4 von 71
2
Analyse-Szenarien
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 5 von 71
STATSPACK
Seminartitel
• Verfügbar ab Version 8i
• Erweiterung von utlbstat/utlestat
• Snapshots von V$-Objekten
•
•
•
•
•
Werkzeuge
– Umfänge steuerbar über Level 0 bis 10
Reports über Delta-Werte
Geeignet zur Parametrierung der Instanz,
Nur bedingt geeignet für einzelne Anwendungen
Vorgeschaltete, strategische Analyse wichtig!
Braucht mehr Ressourcen als AWR
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 6 von 71
3
STATSPACK
Werkzeuge
– User PERFSTAT, Hilfstabellen, Package STATSPACK
Seminartitel
• Steuerbar über Level (Detaillierung) und Threshholds
(SQL-Befehle)
• Installiert über ?/rdbms/admin/spcreate.sql
• Arbeiten mit
– EXECUTE statspack.snap;
– Job über SPAUTO.SQL
– Auswertungen:
• Instanzreport über SPREPORT.SQL und SPREPINS.SQL
• SQL-Report über SPREPSQL.SQL und SPRSQINS.SQL
10/2007
©Database Consult GmbH - Jachenau
Folie 7 von 71
Statspack
Seminartitel
• gut geeignet zur Ermittlung allgemeiner Kennzahlen
• zur „Performance“-Vorsorge und IST-Darstellung
• Doku unter ?\rdbms\admin\spdoc.txt
Die Praxis – IST-Zusatnd
SQL> exec statspack.snap
SQL> start ?\rdbms\admin\spreport.sql
Listing all Completed Snapshots
Snap
Instance
DB Name
Snap Id
Snap Started
Level Comment
------------ ------------ --------- ----------------- ----- -------------------ora102
ORA102
1 26 Okt 2005 12:06
5
11 26 Okt 2005 13:28
5
21 28 Okt 2005 08:41
5
22 28 Okt 2005 08:55
10
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Geben Sie einen Wert f³r begin_snap ein:
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 8 von 71
4
AWR/ASH
Seminartitel
• Reporting über
– SQL-Skripte (?/rdbms/admin/awr* oder ash* [11g])
– Package API DBMS_WORKLOAD_REPOSITORY über (table)
functions
– Format: HTML oder Text
• Kontexte
– AWR, ASH, AWR_SQL (11g)
• In Anlehung an STATSPACK
10/2007
©Database Consult GmbH - Jachenau
Folie 9 von 71
TKPROF
Seminartitel
• „transient kernel profiler“
• formatiert einzelne SQL-Trace-Dateien
• unterschiedliche Filter und Sortierungen verfügbar
Usage: tkprof tracefile outputfile [explain= ] [table= ]
[print= ] [insert= ] [sys= ] [sort= ]
table=schema.tablename
Use 'schema.tablename' with 'explain=' option.
explain=user/password
Connect to ORACLE and issue EXPLAIN PLAN.
print=integer
List only the first 'integer' SQL statements.
aggregate=yes|no
insert=filename List SQL statements and data inside INSERT statements.
sys=no
TKPROF does not list SQL statements run as user SYS.
record=filename Record non-recursive statements found in the trace file.
waits=yes|no
Record summary for any wait events found in the trace
file.
sort=option
Set of zero or more of the following sort options:
prscnt number of times parse was called
prscpu cpu time parsing
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 10 von 71
5
TKPROF
Seminartitel
• Sichtweise SQL, keine Lastprofile
• Gute Auswertung von SQL-Befehlen
– Zugriffspläne und Zeiten
– Wait-Events pro SQL
– jedoch keine Bindevariablen
• Gesamtübersicht der rekursiven und nicht-rekursiven
Befehle
• Keine Befehlsübergreifenden CPU und WaitGewichtungen!
• (Gut) geeignet für Execution-Plan Optimierungen
10/2007
©Database Consult GmbH - Jachenau
Folie 11 von 71
Trace-Analyzer
Seminartitel
• Skriptsammlung zur formatierten Analyse und Ausgabe
(HTML) von 10046er Traces
– RDBMS > 8.1.6
• Über Metalink Note 224270.1
– derzeit Version 2.4.6
• Erweiterte Funktionalität und Reports – auch für 8i
funktionabel
• Arbeitet über Hilfstabellen und PL/SQL-Prozeduren
– Zugriff auf Trace-Verzeichnis mittels DIRECTORY-Objekt
• Ausführliche Analysen (s.u.)
• In manchen Fällen Laufzeitprobleme bei sehr grossen
Trace-Dateien ( ca. > 2GB)
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 12 von 71
6
Trace-Analyzer Ausgabe
– actual start and completion time, host name, RDBMS version,
etc.
Seminartitel
• Trace identification
• SQL statements count, user and internal, total and
unique.
• Time summary
– elapsed, cpu, non-idle wait events, idle wait events, for user
(recursive and non-recursive) and for internal.
• Call summary for user and internal, with elapsed, cpu,
logical reads, physical reads and similar performance
details.
• Summary of wait events, classified by non-idle and idle
for user and for internal
10/2007
©Database Consult GmbH - Jachenau
Folie 13 von 71
Trace-Analyzer Ausgabe
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Seminartitel
• Top 20 SQL statements - importance for SQL tuning
analysis.
• List of all unique SQL statements with one-line
performance summary per statement.
• Gaps of no trace activity found on file.
• List of transactions found (commits and rollbacks).
• Oracle errors if any.
• I/O core waits including schema objects affected (tables,
indexes, partitions), when traced with level 8 or 12.
• Top 5 hot blocks, indicating the schema objects (l 8/12).
• Latch Wait summary
Folie 14 von 71
7
Trace-Analyzer Ausgabe
Seminartitel
• Non-default initialization parameters.
• Für jedes SQL
– Cursor header with SQL statement text, hash value, length, line
on trace, depth, user, etc.
– Oracle errors if any
– Call summary (parse, execute and fetch totals)
– Non-idle and idle wait events (if traced with level 8 or 12)
– I/O and latch waits summary (if level 8 or 12)
– First execution and top 10 for particular SQL statement
– List of bind variables values for first and top 10 executions
– Cumulative row source plan for all executions of SQL statement.
10/2007
©Database Consult GmbH - Jachenau
Folie 15 von 71
Trace-Analyzer Ausgabe
Seminartitel
• Für jedes SQL
– Detailed explain plan if Trace Analyzer is executed on same
instance where trace was generated, and if SQL statement
made the Top 20 list.
– Table, index and partition details including row count, CBO
statistics and indexed columns if the SQL statement generated
an explain plan.
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 16 von 71
8
oraSRP
Seminartitel
• Oracle Session Resource Profiler – derzeit Vers. 3.1.2
(www.oracledba.ru/orasrp/ )
– frei verfügbar für Windows und Linux
– geschrieben in D – command line utility
– sehr performant auch mit grossen Trace-Dateien!
• formatiert und analysiert extended trace files
– Ausgabe in Text oder HTML
– operiert ohne DB
• Vergleich (Version 3.0) mit Hotsos-Profiler
– jforonda.blogspot.com/2007/02/orasrp-v30b-very-shortinitial.html
10/2007
©Database Consult GmbH - Jachenau
Folie 17 von 71
oraSRP
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Seminartitel
orasrp [options] file [outfile]
options:
-h, --help show this help message and exit
--version show program's version number and exit
-t, --text output in text format
--aggregate=YES/no aggregate similar statements
-bn, --binds=n how many unique bind-sets to display (1 by defaut)
--maxbinds=n how many unique bind-sets to analyze (allby default)
--recognize-idle-events=YES/no recognize or not idle wait events
--sys=YES/no print sys statements
--sort how to sort statements in output (values like in tkprof)
--display-sections what sections of report to display (all
by default)
--skip-sections what sections of report to skip
--sessionid analyze data only for the specified session id
--threshold omit statements which spend less than
threshold % from total time (not used by default)
Folie 18 von 71
9
Seminartitel
Teil 2: Analyse
Beispielreports
10/2007
©Database Consult GmbH - Jachenau
Folie 19 von 71
Strategie
Seminartitel
• Ausgangspunkt: Gesamtprofil
– aussagefähig wegen Problem-Fokussierung
• Iterativ nach massgeblichen Events mit maximalem PerformancePotential
– Kontext ist meistens (PL/)SQL – optimiert wird ggf. SQL – Ausnahmen
z.B. Log-Switches
• Orientiert an SLA bzw. Tuning-Vorgaben
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 20 von 71
10
1 Gesamtprofil - oraSRP
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 21 von 71
2 Event Fokussierung - oraSRP
Seminartitel
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 22 von 71
11
3 SQL Fokussierung - oraSRP
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 23 von 71
3 SQL Fokussierung - oraSRP
Seminartitel
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 24 von 71
12
Trace Analyzer 1
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 25 von 71
Trace Analyzer 2
Seminartitel
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 26 von 71
13
oraSRP – Beispiel 2
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 27 von 71
oraSRP – Beispiel 3
Seminartitel
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 28 von 71
14
AWR Report
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 29 von 71
AWR Report
Seminartitel
Mischung von
CPU- und Wait
Events
Hierarchische
Buchführung !
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 30 von 71
15
AWR Report
Seminartitel
weiterführende Reports zu SQL ID, z.B.
SELECT VALUE(P).sql_text
FROM
table(dbms_sqltune.select_workload_repo
sitory ...
10/2007
©Database Consult GmbH - Jachenau
Folie 31 von 71
Statspack –Ausschnitte
Seminartitel
Cache Sizes
Begin
End
---------- ---------Buffer Cache:
292M
284M
8K
Shared Pool Size:
2,828K
Std Block Size:
128M
Log Buffer:
Load Profile
Redo size:
Logical reads:
Block changes:
Physical reads:
Physical writes:
User calls:
Parses:
Hard parses:
.......
10/2007
Database Consult GmbH
Per Second
--------------475.25
51.65
2.67
0.01
0.12
0.12
0.51
0.02
©Database Consult GmbH - Jachenau
Per Transaction
--------------15,589.84
1,694.37
87.65
0.39
4.05
3.85
16.89
0.74
Folie 32 von 71
16
Statspack –Ausschnitte
Buffer Nowait
Buffer Hit
Library Hit
Execute to Parse
Parse CPU to Parse Elapsd
%:
%:
%:
%:
%:
100.00
99.98
96.78
46.35
88.80
Redo NoWait %:
In-memory Sort %:
Soft Parse %:
Latch Hit %:
% Non-Parse CPU:
100.00
100.00
95.63
100.00
89.95
Seminartitel
Instance Efficiency Percentages
Top 5 Timed Events
Event
Waits
Time (s)
------------------------- ------------ ----------log file sync
1,518
1,635
log file parallel write
6,958
1,622
db file parallel write
12,178
366
CPU time
191
control file sequential read
20,046
121
10/2007
©Database Consult GmbH - Jachenau
AVG %Total
wait
Call
(ms)
Time
------ -----1077
39.3
233
39.0
30
8.8
4.6
6
2.9
Folie 33 von 71
Statspack Ausschnitte
Seminartitel
Wait Events DB/Inst: ORA102/ora102 Snaps: 1-21
-> s - second, cs - centisecond, ms - millisecond, us - microsecond
-> %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
-> Only events with Total Wait Time (s) >= .001 are shown
-> ordered by Total Wait Time desc, Waits desc (idle events last)
....
Background Wait Events DB/Inst: ORA102/ora102 Snaps: 1-21
-> %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
-> Only events with Total Wait Time (s) >= .001 are shown
-> ordered by Total Wait Time desc, Waits desc (idle events last)
....
Latch Activity DB/Inst: ORA102/ora102 Snaps: 1-21
->"Get Requests", "Pct Get Miss" and "Avg Slps/Miss" are statistics for
willing-to-wait latch get requests
->"NoWait Requests", "Pct NoWait Miss" are for no-wait latch get requests
->"Pct Misses" for both should be very close to 0.0
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 34 von 71
17
Tracing – Rawtrace
Seminartitel
• sinnvoll bei unvollständigen Auswertungen
• exakte Zuordnung von Wait Events zu Calls
• Gliederung
– Allgemeiner Header
– Identification:
*** ACTION NAME:(Action X) 2005-11-03 13:24:10.265
*** MODULE NAME:(Module A) 2005-11-03 13:24:10.265
*** SERVICE NAME:(SYS$USERS) 2005-11-03 13:24:10.265
*** CLIENT ID:(GU) 2005-11-03 13:24:10.265
*** SESSION ID:(16.1022) 2005-11-03 13:24:10.265
=====================
10/2007
©Database Consult GmbH - Jachenau
Folie 35 von 71
Tracing – Rawtrace
Seminartitel
•
•
•
•
•
•
•
•
•
Cursor Informationen direkt nach Parse Call oder später
Nummer nimmt Bezug auf nachfolgende Calls
len – Länge des Stmts,
uid – schema ID des parsenden Benutzers
oct – Oracle Call Type
lid – privileged user id
tim Zeitstempel in Mikrosekunden (>= 9i) z.B. gettimeofday
hv – hash value
ad - address
PARSING IN CURSOR #7 len=32 dep=0 uid=58 oct=3 lid=58
tim=22374257176 hv=2935929963 ad='1fd73f00'
select count(*) from dba_objects
END OF STMT
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 36 von 71
18
Tracing - Rawtrace
Seminartitel
• Rekursive Calls erscheinen vor ihren Parents
• Parents enthalten in elapsed time die Zeiten ihrer Kinder
PARSING IN CURSOR #1 len=46 dep=1 uid=0 oct=3 lid=0 tim=3282021354
hv=1343089354 ad='2aac0994'
select node,owner,name from syn$ where obj#=:1
END OF STMT
PARSE #1:c=0,e=46,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=3282021346
PARSING IN CURSOR #1 len=179 dep=1 uid=0 oct=3 lid=0 tim=3282058960
hv=2812844157 ad='2aaf9d38'
select owner#,..... from dependency$ d, obj$ o where d_obj#=:1 and
p_obj#=obj#(+) order by order#
END OF STMT ...
=====================
PARSING IN CURSOR #7 len=32 dep=0 uid=58 oct=3 lid=58 tim=3282347867
hv=2935929963 ad='1fcc1024'
select count(*) from dba_objects
END OF STMT
PARSE #7:
c=328125,e=327028,p=0,cr=97,cu=0,mis=1,r=0,dep=0,og=1,tim=3282347858
10/2007
©Database Consult GmbH - Jachenau
Folie 40 von 71
Seminartitel
Teil 2: Analyse
Typisches: CPU-Zeiten, WaitEvents, SQL-Zugriffspläne
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 42 von 71
19
Servicezeit - Parsing
Seminartitel
• Definition:
– Syntaktische und semantische Überprüfung eines SQL-Befehls
– Ermittlung "identischer" Statements
– Ableitung eines "optimalen" Zugriffsplans
• Begriffe
– Hard parse – voller Umfang (aufwendig)
– Soft parse – authentifiziert bereits geladenes Statement
– Session Cursor Cache übernimmt bei parse call > 3
10/2007
©Database Consult GmbH - Jachenau
Folie 43 von 71
Optimierung der Servicezeit
Seminartitel
• Zu hohe Parse-Anteile
–
–
–
–
Open/close-Calls untersuchen
Bindevariablen verwenden
Ggf. cursor_sharing
Ggf. session_cursor_cache setzen
• Zu hohe recursive Anteile
– SQL in PL/SQL optimieren
– shared_pool erhöhen
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 45 von 71
20
cursor_sharing
Seminartitel
• Dynamischer Init.ora Parameter
– Session- und System-Kontext
– Automatisiertes Ersetzen von Literalen durch
Bindevariablen bei sonst gleicher Syntax
• exact = nicht aktiviert, hard parse pro stmt.
• force = Literale werden immer ersetzt, wenn
Semantik nicht verändert wird
– Ggf. problematisch bei stored outlines
• similar – Literale werden nur dort ersetzt, wo
eine Änderung des Plans nicht zu erwarten ist,
ggf. wie exact
10/2007
©Database Consult GmbH - Jachenau
Folie 46 von 71
bind variable peeking
Seminartitel
• optimizer_features_enable >= 9.0.1
• Betrachtet Bind-Werte beim ersten Aufruf des Cursors!
• Keine Evaluierung bei Folgeaufrufen
• jedoch 11g: adaptive cursors
– Verwaltung von „bind sensitive“ Cursorn
– bei perfromance impact werden neue Cursor aufgemacht
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 47 von 71
21
db file sequential read
– read()-Call – kontinuierliche Speicherung im Memory-Bereich
– entspricht Single-Block Read aus Sicht von Oracle
– Ausnahme: MB reads auf temporären Segmenten
Seminartitel
• Wartezustände bei read()-Operationen (Unix)
• Verwendet für
–
–
–
–
Index Scans
Table Access by Rowid
Undo Zugriffe
Control File und Datafile Header
• Parameter
– p1 – file#
– p2 – block#
– p3 - blocks
10/2007
©Database Consult GmbH - Jachenau
Folie 49 von 71
db file sequential read
– dadurch Reduzierung des LIO und dadurch Reduzierung
des PIO
– Implementierung, Indexstrukturen, Parameter
Seminartitel
• Optimierung der zugehörigen SQL-Statements
• wenn nicht möglich dann IO-Durchsatz erhöhen
– Durchschnittliche Single Block Reads ca. 10ms oder ca. 68 ms (SAN) – siehe Tabelle aux_stats$
– IO-Verteilung: Platten und Controller – v$filestat
– Filesystem und Blockgrösse versus Rawdevice
– Raid Level
– Multiple Buffer Pools oder Cache-Klausel
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 50 von 71
22
db file scattered read
– readv()-Call – verteilte Speicherung im Memory-Bereich
– entspricht Multi-Block Read aus Sicht von Oracle – maximal
db_file_mulitblock_read_count
Seminartitel
• Wartezustände bei read()-Operationen (Unix)
• Verwendet für
– Full Table Scans
– Fast Full Scans auf Indizes (FFS)
• Parameter
– p1 – file#
– p2 – block#
– p3 – block count
10/2007
©Database Consult GmbH - Jachenau
Folie 51 von 71
db file scattered read
–
–
–
–
Seminartitel
• Gemischte db file waits bei full table Scans möglich:
„gecachte“ Blöcke
extent boundaries
Migrierte oder „gechainte“ Rows
Index-Pflege bei INSERTS über Subqueries mit Full Scans
• Optimierung ähnlich sequential reads:
– SQL-Optimierung
– wenn nicht möglich dann IO-Durchsatz erhöhen
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 52 von 71
23
direct path read (temp)
Seminartitel
• single oder multiblock rad in PGA
– entspricht Anzahl der read-requests für Synch-IO
– ungenau wegen Überlappungen bei Asynch-IO
• Ursachen
– Sorts auf Platte
– Hash-Joins > hash_area_size
– Parallelisierung von SQL – für Query Slaves (!!)
• für Parent der Event „PX Deq: Execute Reply“
• Parameter
– p1 – file#
– p2 – block#
– p3 – block count
10/2007
©Database Consult GmbH - Jachenau
Folie 53 von 71
direct path read (temp)
Seminartitel
• Tuning Massnahmen
– SQL Optimierung – sort_area_size, hash_area_size,
pga_aggregate_target
• Direct IO Buffer Size
– Grösse in Byte über _db_file_direct_io_count
– Trace über Event 10357 zeigt slots und slot size
– Einstellung von Sltos size über Event 10351
– Anzahl slots über Event 10353
• aktuelle Nutzung siehe über v$tempseg_usage
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 54 von 71
24
db file parallel write
Seminartitel
• Wartezustand im Kontext des DBWR
• DBWR schreibt modifizierte Blöcke
–
–
–
–
alle 3 Sekunden
initialisiert durch Server-Prozess
bei Checkpoints
wenn Grenzwerte erreicht sind ...
• Begleitende Events bei den Serverprozessen
– free buffer waits
– write complete waits
• Massnahmen: DBWR Durchsatz erhöhen
– asynch IO
– db_writer_processes > 1 oder dbwr_io_slaves
10/2007
©Database Consult GmbH - Jachenau
Folie 56 von 71
log file parallel write
Seminartitel
• Wartezustand im Kontext des LGWR
• LGWR schreibt
– nach Zeitraster
– nach Füllraster
– zum Commit ...
• Begleitende Events für Serverprozesse
– log file synch
• Massnahmen
– bessere IO-Verteilung – Log-Dateien separieren
– Reduzierung des Redo-Volumens
• NOLOGGING
• Commit-Frequenz
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 57 von 71
25
Latch Waits unter 10g
Seminartitel
• Neben latch free 28 weitere Latch Events
• Vereinfachte Analyse
latch: cache buffer handles
latch: cache buffers chains
latch: cache buffers lru chain
latch: checkpoint queue latch
latch: enqueue hash chains
latch free
latch: library cache
latch: library cache lock
latch: library cache pin
latch: parallel query alloc buffer
latch: redo allocation
latch: redo copy
latch: redo writing
latch: session allocation
latch: shared pool
10/2007
©Database Consult GmbH - Jachenau
Folie 64 von 71
latch free
Seminartitel
• Latch free
– Warten auf Latch – adress, latch number, tries als Parameter
– Feststellen welches Latch (v$latchname, v$latch,
v$latch_children)
– Aktion nach Art des Latch
• Shared pool latch & Library cache latch – bei space
allocation = Reduzieren von Parsing
• cache buffer hash chain latch – bei Anfrage und Änderung
eines Buffers
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 65 von 71
26
SQL Optimierung
Seminartitel
CBO arbeitet i.d.R. zufriedenstellend wenn er korrekt
konfiguriert wurde!
Gute Kenntnis der Grundlagen (init.ora und Statistiken)
garantieren Verlässlichkeit!
10/2007
©Database Consult GmbH - Jachenau
Folie 66 von 71
Serverparameter CBO
Diverse
CURSOR_SHARING
SKIP_UNUSABLE_INDEXES
DB_FILE_MULTIBLOCK_READ_COUNT
parallel processing
underscore-Parameters
Memory
WORKAREA_SIZE_POLICY
PGA_AGGREGATE_TARGET
HASH_AREA_SIZE
SORT_AREA_SIZE
BITMAP_MERGE_AREA_SIZE
Query transformation
QUERY_REWRITE_ENABLED
QUERY_REWRITE_INTEGRITY
STAR_TRANSFORMATION_ENABLED
OPTIMIZER_SECURE_VIEW_MERGING
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Seminartitel
Grundlegend
OPTIMIZER_MODE
OPTIMIZER_FEATURES_ENABLE
OPTIMIZER_DYNAMIC_SAMPLING
OPTIMIZER_INDEX_COST_ADJ
OPTIMIZER_INDEX_CACHING
DB_FILE_MULTIBLOCK_READ_COUNT
Folie 68 von 71
27
Tuning-Möglichkeiten SQL
Seminartitel
10/2007
©Database Consult GmbH - Jachenau
Folie 69 von 71
Strategisches Tuning
Seminartitel
• Konzentration auf relevante Kontexte
• genauer Fokus im Rahmen von Lastprofilen
• Tuning massgeblicher Warte- oder CPU-Faktoren iterativ
Danke für‘s Zuhören
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 71 von 71
28
Herunterladen