New Features 11g TOAD User Konferenz 2008 Dr. Günter Unbescheid Database Consult GmbH Database Consult GmbH Gegründet 1996 Kompetenzen im Umfeld von ORACLE-basierten Systemen Tätigkeitsbereiche – – – – – – – – 10/2008 Tuning, Installation, Konfiguration Support, Troubleshooting, DBA-Aufgaben Datenmodellierung und –design Datenbankdesign, Systemanalysen Programmierung: SQL,PL/SQL,Java, JSP, ADF UIX, BC4J Schulungen Expertise/Gutachten www.database-consult.de ©Database Consult GmbH - Jachenau New Features 11g • • • Agenda New Features 11g • Kleine Einstimmung in das Thema • Ausgewählte Features der Version 11g – begrenzter Zeitrahmen – subjektive Auswahl – nicht nur Hochglanz-Features 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Einstimmung 10/2008 ©Database Consult GmbH - Jachenau Feature-Relevanz Anforderungen Funktionsprofile Stabilität Produktvergleich Marketing 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Unternehmensziele Die Relevanz neuer Features entscheidet jeder Kunde für sich Beurteilungs-Perspektiven New Features 11g ProgrammiererPerspektive BetreiberPerspektive Experiment versus Konstanz 10/2008 ©Database Consult GmbH - Jachenau Kriterien New Features 11g Kostenminimierung Applik. anforderung Fehlerbehebung Performance Kosten Upgrade Neue Features Instabilität Fehler Laufzeitveränderungen 10/2008 Supportende ©Database Consult GmbH - Jachenau New Features 11g Ausgewählte Features 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Ausgewählte Features: Secure Files 10/2008 ©Database Consult GmbH - Jachenau Originalton Oracle ... SecureFiles offers the best-of-both-worlds architecture from both the database and filesystem worlds for storing unstructured data. SecureFiles is a completely new architecture inside the Oracle Database 11g for handling file or unstructured data. It features entirely new disk formats, network protocol, space management, redo and undo formats, buffer caching, and intelligent I/O subsystem. With SecureFiles, Oracle has perfected the use of the database for storage of all enterprise data. 10/2008 ©Database Consult GmbH - Jachenau New Features 11g SecureFiles is a major paradigm shift with the choice of files storage. Kurzer Rückblick - LOB Large Objects ab der Version 8.0 – CLOB, BLOB, NCLOB und BFILE • Datenstrukturen – Lob-Locator + Inode, LOB-Index, LOB-Segment – Storage innerhalb der Row (<=4000 Bytes) oder LOB-Segment – Speichereinheiten CHUNKs (LOB-Segment) • Schnittstelle: DBMS_API -- LOB under 10g – insert into T values (1,‘bla‘); tl: 49 fb: --H-FL-- lb: 0x1 cc: 2 col 0: [ 2] c1 02 col 1: [42] 00 54 00 01 02 0c 80 00 00 02 00 00 00 01 00 00 00 2e 5b f9 00 16 09 00 00 00 00 00 00 06 00 00 00 00 00 01 00 42 00 4c 00 41 Unicode DB-Charset -- LOB under 11g tl: 46 fb: --H-FL-- lb: 0x1 cc: 2 col 0: [ 2] c1 02 col 1: [39] 00 54 00 01 02 0c 00 00 00 01 00 00 00 01 00 00 00 01 b7 75 00 13 09 00 00 00 00 00 00 03 00 00 00 00 00 01 42 4c 41 WE Charset 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • SecureFiles – >= Version 11gR1 – Tablespace mit Automatic Segment Space Management ASSM • Merkmale – Klausel store as securefile statt store as basicfile – – – – – – – 10/2008 dynamische CHUNK-Grösse, Klausel als Vorschlag intelligent pre-fetching new client/server network layer – Performance Neuer LOB-Index (s.u.) kein FREEPOOLS, PCTVERSION nötig interne Statistiken zur Space-Optimierung transparente encryption, compression, deduplication ©Database Consult GmbH - Jachenau New Features 11g • Voraussetzungen LOB-Index – pro Segment für Lesen + Freiplatzverwaltung (Metadaten) • 11g – keine Metadatenverwaltung über LOB-Index – statt dessen „private“ Metadata-Blöcke – ASSM Bezug tab tl: col col 00 90 10/2008 0, row 0, @0x1f70 40 fb: --H-FL-- lb: 0x1 cc: 2 0: [ 2] c1 02 1: [33] 54 00 01 02 0c 00 80 00 01 00 00 00 01 00 00 00 01 b7 77 00 0d 48 00 07 00 00 03 01 42 4c 41 ©Database Consult GmbH - Jachenau New Features 11g • Struktur für inodes zur Lokalisierung der Chunks • 10g SF Kompression Arbeitet auf der Server-Seite Faktor 2-3x für Dateitypen wie doc,pdf und xml erkennt selbsttätig ob Datei kompromierbar ist Nur durchgeführt bei „ausreichender“ Einsparung 2 Kompressionsstufen MEDIUM und HIGH – CPU und latency Auswirkungen • Advanced Compression Option – auch nötig für – – – – 10/2008 OLTP compression - INSERT, UPDATE and DELETE. RMAN Backup + Datapump export SecureFiles Deduplication + Compression Network Traffic Compression - compress Data Guard (standby database) redo ©Database Consult GmbH - Jachenau New Features 11g • • • • • SecureFiles Voreinstellungen (init.ora) – db_securefile – – – – – ALWAYS – versucht SF FORCE – erzwingt SF oder scheitert PERMITTED – SF nur wenn explizit genannt (Default) NEVER – nicht erlaubt, SF Option erzeugen Fehler IGNORE – keine SF, Options werden ignoriert -- Anlegen create table TEST (cpk number(10) not null, document clob) lob(document) store as SECUREFILE doc_sf (nocache logging retention auto COMPRESS DEDUPLICATE ENCRYPT) / 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • SecureFiles – Storage Klauseln – regelt CR-Verhalten von SF in Abhängigkeit von UNDO-TS – Wert MAX – LOB-Segment wächst bis MAXSIZE bevor UndoPlatz freigegeben wird. – Wert AUTO – interne Kalkualtion der R-Periode – Wert NONE – keine Retention – Wert MIN <n> - Vorhaltezeit in Sekunden • FILESYSTEM_LIKE_LOGGING – alternativ zu LOGGING oder NOLOGGING – logging der Metadaten von SF ~ meatadata journaling 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • RETENSION-Klausel Zugriff – JDBC, ODBC, OCI, OCCI, .NET, PL/SQL (DBMS_LOB) • Filesystem nutzen Protokolle des XML DB oder Content DB Repository – FTP access – WebDavAccess – Http Access 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Zugriff von DB-Clients und Filesystem • DB-Clients per standard LOB-Schnittstellen New Features 11g Ausgewählte Features: Automatic Diagnostic Repository (ADR) 10/2008 ©Database Consult GmbH - Jachenau ADR – einheitliches Datenformat für unterschiedliche Produkte, ASM CRS, RDBMS etc. • zusätzlich neue Dateitypen – Incident packages – SQL test cases – Data repair records • IPF – Incident Packaging Framwork – versenden relevanter Daten an Support-Services 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • zentralisiertes Filesystem Repository für Trace-, Dumpund Log-Dateien ADR-Struktur New Features 11g 10/2008 ©Database Consult GmbH - Jachenau ADR – _diag_adr_enabled – diagnostic_dest = $ORACLE_BASE • View v$diag_info • Tool adrci – anzeigen der Daten – Verpacken von Incidents für Support 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Alert – Datei als XML-File • init.ora Parameter adrci -- als Shell adrci << EOF set homepath diag/rdbms/orcl/orcl show alert -p "message_text like '%ORA-%'" EOF -- Homepath kann auch auf mehrere Homes gesetzt werden! show incident –mode detail –p „incident_id=12345“ ips create package -- 10/2008 ©Database Consult GmbH - Jachenau New Features 11g adrci -help adrci> show homes; sho incident -- oder adrci exec="set homepath diag/rdbms/orcl/orcl1; set editor vi; show alert“ EM Support Workbench • Graphische EM Oberfläche mit adrciFunktionaltät Oracle Configuration Manager – lädt ADR-Incident Packages hoch (My Support/Metalink) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • New Features 11g Ausgewählte Features: Health Monitor 10/2008 ©Database Consult GmbH - Jachenau Health Monitor – – – – • • • • file system, memory, Datenintegrität schreibt in ADR automatisch ausgeführt bei kritischen Fehlern manuell aufrufbar per DBMS_HM oder EM Database Control reactive checks – aufgrund von Fehlern in DB proactive checks – per RMAN oder EM DBC Arten von Checks per v$hm_check Parameter per v$check_param 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Framework, das diverse Checks im Kontext der Datenbank durchführt Health Monitor Single Datafile Check Log Group Check Log Group Member Check Archived Log Check Redo Revalidation Check IO Revalidation Check Block IO Revalidation Check Txn Revalidation Check Failure Simulation Check Dictionary Integrity Check dbms_hm.run_check( 'DB Structure Integrity Check','testrun1'); adrci> show hm_run adrci> show report hm_run testrun1 auch: RMAN> validate database; 10/2008 ©Database Consult GmbH - Jachenau New Features 11g HM Test Check DB Structure Integrity Check Data Block Integrity Check Redo Integrity Check Logical Block Check Transaction Integrity Check Undo Segment Integrity Check All Control Files Check CF Member Check All Datafiles Check Sammlung und Vergleich Einstellbare Präferenzen Anstehende Statistiken (pending) Inkrementelle Statistiken Erweiterte Statistiken (extended) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Ausgewählte Features: Statistiken für den Optimizer Qualität der Optimierung New Features 11g Kennzahlen über die Daten Statistiken (Grundlage der Kosten) Zeitrahmen für die Optimierung „optimization budget“ Datenstrukturen Genauigkeit der Algorithmen 10/2008 ©Database Consult GmbH - Jachenau Qualität der Statistiken New Features 11g Welche Objekte? (Zugriffsstatistiken) Welche Sample Size? 10/2008 Histogramme für welche Spalten? ©Database Consult GmbH - Jachenau SYS.COL_USAGE$ OBJ# NUMBER sys.obj$ INTCOL# NUMBER sys.col$ EQUALITY_PREDS NUMBER EQUIJOIN_PREDS NUMBER NONEQUIJOIN_PREDS NUMBER RANGE_PREDS NUMBER LIKE_PREDS NUMBER NULL_PREDS NUMBER TIMESTAMP DATE erhalten nach Stat-Generierung DBMS_STATS_INTERNAL DBMS_STATS SMON ca. 15 minütig ohne Transaktionslogik SYS.MON_MODS$ SYS.MON_MODS_ALL$ OBJ# NUMBER sys.obj$ INSERTS NUMBER UPDATES NUMBER DELETES NUMBER TIMESTAMP DATE FLAGS NUMBER DROP_SEGMENTS NUMBER 10/2008 DBA_TAB_MODIFICATIONS DBA_TAB_STATISTICS DBA_IND_STATISTICS Übernahme ca. 3-stündig genullt nach Stat-Generierung ©Database Consult GmbH - Jachenau New Features 11g dbms_stats.FLUSH_DATABASE_MONITORING_INFO Zugriffs-Statistiken Automatische Statistik Sammlung 10g Job Class MAINTENANCE_WINDOW_GROUP AUTO_TASKS_JOB_CLASS Job Program Action GATHER_STATS_JOB GATHER_STATS_PROG dbms_stats gather_database_stats_job_proc MO-FR jeweils 22 Uhr – 8 Stunden (WEEKNIGHT_WINDOW) SA jeweils 0 Uhr – 2 Tage (WEEKEND_WINDOW) Ein- und Ausschalten über: -- Job-Scheduler (DBMS_SCHEDULER) -- init.ora _optimizer_autostats_job = false 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Schedule Automatische Statistik Sammlung 11g Autotasks (völlig) neu aufgestellt Verwaltbar über DBMS_AUTOTASK_ADMIN Infos über 7 DBA_AUTOTASK_xxx Views Scheduler Jobs werden bei Eintreffen des Zeitfensters erzeugt Gelöscht nach Fertigstellung; abbrechen falls Fenster beendet DBA_AUTOTASK_CLIENTS Autotask Clients auto space advisor sql tuning advisor auto optimizer stats collection 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • • • • • Automatische Statistik Sammlung 11g New Features 11g auto optimizer stats collection ORA$AT_WGRP_OS ORA$AUTOTASK_ STATS_GROUP Window Group Consumer Group Windows MONDAY_WINDOW 22:00 Uhr 4 Stunden ... SATURDAY_WINDOW SUNDAY_WINDOW 6 Uhr 20 Stunden 10/2008 Resource Plans DEFAULT_MAINTENANCE_PLAN ORA$AUTOTASK_SUB_PLAN Job Classes ORA$AT_JCxxx_OS ©Database Consult GmbH - Jachenau Automatische Statistik Sammlung 11g SELECT client_name,operation_name,status FROM dba_autotask_operation; SELECT client_name,job_name,job_start_time FROM dba_autotask_job_history; DBMS_AUTO_TASK_ADMIN.GET_P1_RESOURCES ( STATS_GROUP_PCT, SEG_GROUP_PCT, TUNE_GROUP_PCT, HEALTH_GROUP_PCT); 10/2008 ©Database Consult GmbH - Jachenau New Features 11g begin dbms_auto_task_admin.disable( client_name => 'auto optimizer stats collection', operation => NULL, window_name => 'FRIDAY_WINDOW'); end; Automatische Statistik Sammlung 11g 10/2008 ©Database Consult GmbH - Jachenau New Features 11g DBMS_AUTO_TASK_IMMEDIATE.GATHER_OPTIMIZER_STATS -- startet Program gather_stats_prog -- dieses ruft dbms_stats.gather_database_stats_job_proc Sampling • sample size Schnelligkeit estimate Effiziente Bestimmung einer guten „sample“- Grösse – Manuell = aufwendig, unflexibel – auto – schwierig bei stark variierender Selektivität • Neues Verfahren: value sampling – größere Genauigkeit bei schnellerer Generierung – genutzt wenn estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE – keine Sorts und keine Temp-Space Nutzung 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Genauigkeit compute Sampling Wert 10g Wert 11g Delta Zeit Tab + Ind 2,00 1,71 + 14,5 % Sample Size Tabelle 50141 200000 ~ Faktor 4 num_rows 200564 200000 ~ 0,3 % num_distinct c3 200364 200000 0,3% (10) 0,1% (11) Num_distinct c2 30 10/2008 30 0% • • • ©Database Consult GmbH - Jachenau Vorgabe: Tabelle T1 mit 200.000 Rows Spalten c1 – Number – eindeutig c2 – varchar mit 30 distinktiven Werten c3 – varchar per Random, nachträglich 200 Rows mit gleichem Wert. Indizes auf alle Spalten Statistiken per auto sampling New Features 11g Statistik • • Rolling Invalidations – Vermeidung von “hard parse storms” – steuerbar über Parameter no_invalidate bei dbms_stats – verfügbar seit 9i, veränderte Defaults • no_validate – false = markiert alle abhängigen Cursor sofort als ungültig – true = keine Markierung, hard parse nur nach flush und reload – dbms_stats.auto_invalidate = Markierung innerhalb einer konfigurierbaren Zeitspanne, Verteilung der parse-Last, Default für Auto-Job • _optimizer_invalidation_period – Zeitspanne in Sekunden – Default 18000 (5 Std.) – änderbar – Aufbau eines neuen Child Cursors wegen roll_invalid_mismatch (v$sql_shared_cursor) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Parsing-Verhalten nach Statistik-Generierung Vergleichs-Report Zahlenvergleich von Statistiken in folgenden Kontexten – verschiedene Stat-Tabellen – historische Statistiken (inerhalb Retention Periode) – Pending Statisken • Historie über DBA_TAB_STATS_HISTORY -- table function select * from table(dbms_stats.diff_table_stats_in_history( ownname => 'SYS', tabname => 'T1', time1 => '09-NOV-07 11.13.03.904173 AM +01:00‘, pctthreshold => 1 )); 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Vergleichs-Report STATISTICS DIFFERENCE REPORT FOR: ................................. TABLE : T1 OWNER : SYS SOURCE A : Statistics as of 09-NOV-07 11.13.03.904173 AM +01:00 SOURCE B : Current Statistics in dictionary PCTTHRESHOLD : 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ COLUMN_NAME SRC NDV DENSITY HIST NULLS LEN MIN MAX SAMPSIZ ............................................................................. REPORT ----------------------------------------------------------------------------C1 A NO_STATS B 200000 .000005 NO 0 5 C102 C315 200000 10/2008 ©Database Consult GmbH - Jachenau New Features 11g REPORT ---------------------------------------------------------------------------############################################################################ Präferenzen ESTIMATE_PERCENT METHOD_OPT NO_INVALIDATE GRANULARITY AUTOSTATS_TARGET (ALL,ORACLE,AUTO) pauschal für Datenbank 10/2008 analyze DBMS_STATS set_param DBMS_STATS DBMS_STATS XXX_prefs get_prefs Nutzung von Defaults Variable hierarchische Vorgaben New Features 11g 10g 11g < entfallen > AUTOSTATS_TARGET < neu > PUBLISH INCREMENTAL STALE_PERCENT Vorgaben nicht konstant DBMS_STATS set_param get_param XXX:<action>_<level>_prefs <action>:set|delete|export|import <level> :global|database|schema| table ©Database Consult GmbH - Jachenau Präferenzen New Features 11g CASCADE DEGREE ESTIMATE_PERCENT METHOD_OPT NO_INVALIDATE GRANULARITY PUBLISH INCREMENTAL STALE_PERCENT OPSTAT_USER_PREFS$ DBA_TAB_STAT_PREFS database - alle Schema-Objekte ausser SYS global - globale Präferenzen 10/2008 ©Database Consult GmbH - Jachenau Pending Statistics Statistiken generieren Kontrolliertes Testen PUBLISH – PUBLISH – true (default) oder false – Abfragen per DBMS_STATS.GET_PREFS – Ändern per SET_<level>_PREFS • Session-Verhalten gesteuert per – optimizer_use_pending_statistics – Default: false • Prüfen per View dba_<x>_pending_stats – <x>:={TAB|IND|COL|TAB_HISTGRM} Allgemeine Nutzung 10/2008 • Aktionen – publizieren, exportieren, löschen, z.B. – DBMS_STATS.PUBLISH_PENDING_STATS ©Database Consult GmbH - Jachenau New Features 11g • Verhalten gesteuert über Präferenzen Inkrementelle Statistiken Interessant für partitionierte Tabellen – 10g: separate Statistikgenerierung für einzelne Partitions, aber globale Statistiken immer über Gesamttabelle generiert (full scan) – 11g: Generierung nur für „touched partitions“ globale Statistiken erzeugt aus Partitionsstatistiken kein Scan auf „non-touched partitions“ • Zahlen (Quelle Oracle): – Lineitem (TPC-H), 1.8 M rows, 230GB, 84 partitions, 16 cols Touched partitions incremental 1% 100% 1 37 797 18772 2 49 797 18772 3 65 797 18772 10 162 797 18772 20 299 797 18772 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Inkrementelle Statistiken Voraussetzungen (AND): Präferenz incremental auf true (Default false !) Präferenz publish auf true estimate_percent => dbms_stats.auto_sample_size • granularity => 'AUTO' 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • • • • Extended Statistics – Spaltengruppen – Ausdrücke • Statistiken: NDV, number nulls, Histogramme • Verbesserte Berechnung der Selektivität • Spaltengruppen – Mehrfach-Prädikate auf einer Tabelle – Semantischen Beziehungen der Spalten untereinander (z.B. Bundesstaat und Nationalstaat) • Ausdrücke – 10g: Default Selektivität – 11g: Histogramm-Nutzung über virtuelle Spalten 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Erlaubt die Erzeugung von Statistiken für Extended Statistics EXTENSION_NAME EXTENSION ------------------------------ ----------SYS_STUOXVZ1C2WGW4DRVBD89VDEO_ ("C2","C3") -- Nach dem Generieren der Statistiken die Views: -- DBA_TAB_COL_STATISTICS und DBA_HISTOGRAMS 10/2008 ©Database Consult GmbH - Jachenau New Features 11g -- Erzeugen select dbms_stats.create_extended_stats( ownname => 'SCOTT', tabname => 'T1', extension => '(C2,C3)') from dual / -- Anschauen SELECT extension_name, extension FROM dba_stat_extensions WHERE owner = 'SCOTT' AND table_name = 'T1'; AdaptiveCursor Sharing SQL Plan Management 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Ausgewählte Features: SQL Plan Management Adaptive Cursors – bind variable peeking bei hard parse – bad luck bei soft parse • 11g – auch: extended cursor sharing – Beobachtung der Werte von Bind Variablen („bind sensitive cursor“ ) – erstellt „bind profiles“ mit Selektivitätsbereichen – Bei unterschiedlicher Selektivität: Makierung - „bind aware cursor matching“ – Neues Parsing und ggf. neuer Cursor, wenn Buffer Gets besser sind, ansonsten ausführen des „alten“ Cursors. – ggf. mehrere Ausführungspläne pro Statement – eingeschaltet per Default 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • 10g Adaptive Cursors v$sql (is_bind_sensitive, is_bind_aware, is_obsolete) 3 neue Spalten V$SQL_CS_HISTOGRAM – Anzahl der Ausführungen pro Bucket des WerteHistograms V$SQL_CS_SELECTIVITY Prädikate und Wertebereiche der Bindevariablen V$SQL_CS_STATISTICS Executions, rows_processed, buffer gets und CPU-Time: Parameter: -- ein/aus - änderbar _optimizer_adaptive_cursor_sharing - (true/false) -- relationale Operatoren - änderbar _optimizer_extended_cursor_sharing_rel - (none/simple) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Views: SQL Plan Management • Veränderte SQL-Zugriffspläne kommen nur zum Einsatz wenn sie „besser“ werden und dann „akzeptiert“ werden. wirksam für wiederholt ausgeführte Statements Capture: SQL-Statements Statement Parse Plan Baseline CBO neuer Plan keine Ausführung Markierung 10/2008 erneutes Parse Neuer Plan in Plan History Plan Verifizierung ©Database Consult GmbH - Jachenau Plan Ausführung New Features 11g • SQL Plan Management – für „wiederholt“ ausgeführte Statements – keine ad-hoc St. – gespeichert in SMB (SQL management Base - SYSAUX) in Form von „plan baselines“ • SQL text, outline, bind variables, und compilation environment – automatisch über optimizer_capture_sql_plan_baselines (default FALSE) – View DBA_SQL_PLAN_BASELINES änderbar für session und system – oder explizit geladen (SQL Sets/AWR, Cursor Cache, Staging Table) – nutzbar über optimizer_use_sql_plan_baselines – Schnittstellen EM und DBMS_SPM API 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • SQL Plan Baselines Mögliches Migrations-Szenario – SQL text, bind variables, execution plans, execution statistics – DBMS_SQLTUNE.CAPTURE_CURSOR_CACHE_SQLSET Filter für SQL-String und/oder Schema möglich – Set in staging table „verpacken“ DBMS_SQLTUNE.PACK_STGTAB_SQLSET – DPexport des Staging Bereichs • Tuning Set auf Ziel einführen – Import des Staging Bereichs – „Auspacken“ des Tuning Sets DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET – Laden des Tuning Set in Plan Management DBMS_SPM.LOAD_PLANS_FROM_SQLSET 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Kritische SQL-Statements sammeln • hiervon SQL Tuning Set erstellen Mögliches Migrations-Szenario – SQL-Statements per explain verifizieren • Alternativ (11g zu 11g) – entsprechende Baselines auf Ziel löschen – Staging Table für Baselines erzeugen DBMS_SPM.CREATE_STGTAB_BASELINE – Baselines „verpacken“ übertragen und entpacken DBMS_SPM.PACK_STGTAB_BASELINE • Alternativ (10g in 11g) – SPA Task erzeugen für entsprechenden STS DBMS_SQLPA.CREATE_ANALYSIS_TASK – starten mit unterschiedlichen OPTIMIZER_FEATURES_ENABLE – danach Analyse DBMS_SQLPA.EXECUTE_ANALYSIS_TASK 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Tuning Set auf Ziel einführen 10/2008 ©Database Consult GmbH - Jachenau New Features 11g Ausgewählte Features: Result Cache Result Cache Caching von Result Sets, nicht von Blöcken -> Speichereffizienz „just-in-time materialized view“ - Teil des Shared Pool - Instanz Gültig bis abhängige Objekte modifiziert werden 2 Ebenen implementiert – Server RC (SQL Query + PL/SQL function results) + Client Side RC – OCI-Calls -- init Parameter result_cache_max_size result_cache_max_result (Prozentsatz eines Results) result_cache_mode = { MANUAL | FORCE } select /*+ result_cache */ .... /*+ no_result_cahce */ -- Function Cache CREATE FUNCTION x (p_x IN NUMBER) RETURN NUMBER RESULT_CACHE RELIES_ON(table_t) AS ... -SELECT dbms_result_cache.status() FROM dual; -- Diverses V$RESULT_CACHE_STATISTICS - DBMS_RESULT_CACHE.MEMORY_REPORT DBMS_RESULT_CACHE.FLUSH©Database Consult GmbH - Jachenau 10/2008 New Features 11g • • • • Result Cache Defaults – – – – 0.25 % memory_target 0.5 % sga_target 1 % shared_pool_size Maximal nicht mehr als 75% des shared pool • Grösse pro result set – 5% des RC • Caching von remoten Objekte – per Default ausgeschaltet – Parameter result_cache_remote_expiration (in Minuten) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Gesamtgrösse Server Result Cache – – – – Gleiche Syntax! Dictionary- und temporary tables CURRVAL, NEXTVAL SQL functions current_date, current_timestamp, local_timestamp, – userenv/sys_context (mit non-constant Variablen), sys_guid, sysdate, sys_timestamp – Non-deterministic PL/SQL Funktionen – keine Subqueries • Parametrierte Results – Bindevariablen als Wert! 10/2008 ©Database Consult GmbH - Jachenau New Features 11g • Einschränkungen Result Cache Abfragen exec dbms_result_cache.flush select name, value from v$result_cache_statistics; select * from V$RESULT_CACHE_DEPENDENCY; select * from V$RESULT_CACHE_MEMORY; 10/2008 ©Database Consult GmbH - Jachenau New Features 11g select status,name,namespace from v$result_cache_objects where ... Patching PL/SQL -- 2. Flush the existing cached results: exec dbms_result_cache.flush -- 3. Apply the PL/SQL code patch. -- 4. Turn off the PL/SQL result cache bypass mode: exec dbms_result_cache.bypass(false) 10/2008 ©Database Consult GmbH - Jachenau New Features 11g -- 1. Place the result cache in bypass mode: exec dbms_result_cache.bypass(true)