140 likes | 301 Views
Oracle11g voor ontwikkelaars. 12 december 2007 Rob van Wijk. Onderwerpen. Result cache Flashback Data Archive Multikolom statistieken PL/SQL Fine Grained Dependency Tracking Interval- en referentiepartitionering Opheffing PLS-00436 FOR UPDATE SKIP LOCKED PL/Scope Virtuele kolommen
E N D
Oracle11gvoor ontwikkelaars 12 december 2007 Rob van Wijk
Onderwerpen • Result cache • Flashback Data Archive • Multikolom statistieken • PL/SQL Fine Grained Dependency Tracking • Interval- en referentiepartitionering • Opheffing PLS-00436 • FOR UPDATE SKIP LOCKED • PL/Scope • Virtuele kolommen • PIVOT / UNPIVOT • Diverse kleinigheden • Andere nieuwe functionaliteiten
Result Cache • Nieuw onderdeel van SGA • SQL Query result cache • RESULT_CACHE_MODE parameter (MANUAL/FORCE) • /*+ <no_>result_cache */ • PL/SQL Function result cache • RESULT_CACHE <RELIES ON (tabel)> • SQL query result cache schakelt optimalisaties uit • Beperkingen • Parameters resultaatbuffer.sql resultaatbuffer2.sql
Flashback Data Archive • Op basis van UNDO • fbda-proces • Een flashback-archief per retentieperiode • Koppel tabellen aan een flashback-archief • Flashback Query • Flashback Version Query • Per COMMIT i.p.v. per DML-commando • Journaliseringstabellen van de toekomst? • “Gewijzigd door” kolom ontbreekt fda.sql
Multikolom statistieken • <11g: predikaat onafhankelijkheid aanname • Histogrammen op meer dan één kolom • method_opt => FOR COLUMNS (kolom1, …, kolomN) • Kolomgroepen multikolom.sql
PL/SQL Fine Grained Dependency Tracking • Afhankelijkheden • <11g: tabelniveau • Nu: op kolomniveau • Niet te zien in USER_DEPENDENCIES fgdt.sql
Interval- en referentiepartitionering • Automatisch nieuwe partities voor ieder interval • Combinaties met andere partitiemethodes deels mogelijk • SYS namen • Referentiepartitionering: kind heeft zelfde partities als ouder • Op basis van foreign key • DBA’s zijn er enthousiast over intervalpart.sql
Opheffing PLS-00436 • PLS-00436 implementation restriction: cannot reference fields of BULK In-BIND table of records • Introductie FORALL in 8i • Tot versie 11g: losse associatieve arrays of nested tables • Had eigenlijk vanaf het begin al geïmplementeerd moeten zijn pls00436.sql
FOR UPDATE SKIP LOCKED • FOR UPDATE SKIP LOCKED • Bestaat al tijden • Nu: gedocumenteerd • Niet voor puristen skiplocked.sql
PL/Scope • Compilatie optie • ALTER SESSION / ALTER SYSTEM • USER / ALL / DBA_IDENTIFIERS • USER / ALL / DBA_PLSQL_OBJECT_SETTINGS • SQL Developer • Toepassing van Lucas Jellema plscope.sql
Virtuele kolommen • Kolom op basis van expressie/functie • Zichtbaar met desc • Transparanter dan view / triggers • Histogrammen / partitioneren / beperkingen • Nuttig voor complexere attribuut- en tupelregels virtuelekolom.sql
PIVOT / UNPIVOT • Draaitabellen • Matrices • Rijen kantelen naar kolommen en andersom • PIVOT versus MAX(DECODE(…)) • UNPIVOT versus joinen N-tallige tabel/zoekvraag • Iets intuïtievere syntax pivot.sql unpivot.sql
Diverse kleinigheden • :new.id := my_sequence.nextval; • CONTINUE • Compound triggers • FOLLOWS • Onzichtbare indices • REGEXP_COUNT • Native compilation nextval.sql continue.sql compound.sql follows.sql onzichtbaar.sql regexpcount.sql nativecomp.sql
Andere nieuwe functionaliteiten • DBMS_HPROF • Subprogram inlining • Adaptive cursor sharing • Compilatie-waarschuwing: WHEN OTHERS THEN NULL;