New Features 11g - Database Consult GmbH

Werbung
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)
Herunterladen