DOAG2011 – Addenda
Geschrieben von Uwe M. Küchler am 19. November 2011
Sodele, eine interessante DOAG-Konferenz liegt hinter mir, und in der Nachbetrachtung meines Vortrages “Oracle Old Features” ist mir aufgefallen, daß in den Unterlagen die Quellen- und Literaturhinweise fehlten. Diese möchte ich hier nachliefern, und zwar umfangreicher als geplant.
Wer nicht auf der Konferenz war und daher auch nicht die Vortragsunterlagen herunterladen kann: Nicht traurig sein, ich werde in diesem Blog noch einiges über wichtige, oft unterbewertete “Old Features” veröffentlichen!
Constraints
- Oracle 9iR2 Data Warehousing Guide: Integrity Constraints
- Oracle 11gR2 DWH Guide: Query Rewrite Considerations: Constraints
Fremdschlüssel, Query Rewrite
- Oracle-Doku: “Basic Query Rewrite“
- Wer, wenn nicht Tom Kyte, könnte schon etwas darüber gebloggt haben?
- Die Oracle Optimizer Group demonstriert in einem Artikel die Table Elimination und zeigt ihre Grenzen auf.
- Joze Senegacnik (“How One Should Help The Oracle Optimizer“) und Randolf Geist (“Query Transformations“) haben auf der DOAG 2011 ebenfalls die Table-/Join-Elimination thematisiert (Registrierung erforderlich).
RELY-Constraints
- Pete Scott: Kurze Notiz zu einem DWH-Szenario
- Not Null Constraints:
- Unterschiedliches Optimizer-Verhalten bei NOVALIDATE zwischen RELY und NORELY (s. Richard Foote’s Blog)
- RELY wieder entfernen, bevor “enable validate” durchgeführt wird! Siehe hier.
Deferred Constraints
- Potentielle Nachteile: Gute Erläuterung bei Richard Foote
- S.a. http://richardfoote.wordpress.com/2007/12/14/constraints-dont-make-them-deferrable-or-novalidate-unless-you-need-to/; Richard beschreibt hier, daß der Optimizer bei Deferred Constraints nicht mehr “weiß”, ob in einer NOT NULL-Spalte tatsächlich keine NULLs enthalten sind.
- Randolf Geist hat in seinem Blog beispielhaft demonstriert, dass Parallel DML und Direct-Path-Inserts nicht funktionieren, wenn Deferred Constraints auf den betroffenen Tabellen existieren.
COALESCE, ANSI-Joins, WITH-Clause etc.
- Zur Beweisführung in meinen Beispielen Verwendet: AUTOTRACE (verfügbar u.a. in SQL*Plus, TOAD, SQL Developer)
- Aber Vorsicht: “Autotrace Lies” (Kerry Osborne’s Oracle Blog)
- Oracle 11g: COALESCE
- Eddie Awad’s Blog: NVL, NVL2 or COALESCE?
- Bug: “Coalesce doesn’t short circuit in 9i“!
- ANSI-Joins bildlich erklärt auf dbasupport.com
- Oracle-Doku: Joins
- Debatte über pro und contra ANSI Joins bei Doug Burns’ Blog
- Zur WITH-Clause (auch:Subquery Factoring) gibt es einen Artikel bei mir.