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