Multi-Attribut-Vergleiche

Ein interessanter Hinweis von Jonathan Lewis, der auf eine Präsentation von Markus Winand bei den Trivadis CBO-Tagen zurückgeht (die ich mir auch gern angeschaut hätte, wenn ich mir dergleichen leisten könnte): in manchen RDBMS ist es möglich, mehrspaltige Vergleiche der folgenden Form durchzuführen:

where (col1, col2) < (const1, const2)

Die Logik dabei ist: das Prädikat liefert TRUE, wenn col1 < const1 ist, oder wenn gilt: col1 = const1, aber col2 < const2 (und NULL-Werte (more...)

Datenmodellierungsverfahren für das Core Data Warehouse

Wieder nur ein Link: aus dem Hause Trivadis stammt das white paper Comparison of Data Modeling Methods for a Core Data Warehouse, geschrieben vom Autorenteam Maren Eschermann, Adriano Martino und Dani Schnider (dem ich gelegentlich versprochen habe, seinen Namen nicht mehr falsch zu schreiben). Das Papier erläutert die folgenden Modellierungsverfahren:
  • Dimensional Core Modeling with dimensions and fact tables (basierend auf Kimballs Methodologie)
  • Relational Core Modeling with master data versioning
  • Data Vault Modeling with Hubs, (more...)

PDF über PL/SQL erzeugen

Zur Unterstützung meines unterstützungsbedürftigen Gedächtnisses: Morton Braten zeigt einige Möglichkeiten zur Erzeugung von PDF-Reports über PL/SQL.

Verwendung von SQL Server Query Hints

In der SQL Server Welt betrachtet man Query Hints offenbar ähnlich argwöhnisch wie im Oracle Umfeld - als "best pratice" gilt: man sollte sie vermeiden und alle Entscheidungen dem Optimizer überlassen. Thomas Kejser sieht das ein wenig anders:
For a complete novice of SQL Server, I would agree. But to call avoiding query hints a “best practise” is taking it too far. For anyone with a little experience who knows what they are doing, I (more...)

Rowsource-Statistiken nach Query-Abbruch

Ein nützlicher Hinweis von Randolf Geist im OTN-Forum:
one thing that is not so commonly known about the Rowsource Statistics is that *no matter how* the statement execution completed, the data will be available. So a long running query can be cancelled and the Rowsource Statistics will still be populated (but only after the statement execution stopped in some way). Usually the information then available is already good enough to tell why the execution takes (more...)

Autonomes Logging mit postgres

Im Rahmen von ETL-Operationen ergibt sich immer wieder die Situation, dass man eine Log-Message in ein ETL-Log schreiben möchte, ohne dadurch die eigentliche Transaktion per commit festzuschreiben, denn der Umfang der Transaktionen sollte nicht durch die Log-Einträge bestimmt werden. Da die Log-Nachricht im Fall eines Rollbacks der Transaktion ebenfalls zurückgerollt werden würde, kann man sich allerdings auch nicht auf den Abschluss der eigentlichen ETL-Operation verlassen. Zur Lösung dieses Problems bietet Oracle das Pragma Autonomous Transaction (more...)

NULL-Werte in Indizes

Jonathan Lewis hat in seinem Blog zuletzt zwei Artikel veröffentlicht, die sich mit der Speicherung von NULL-Werten in Indizes beschäftigen:
  • Bitmap Nulls: liefert ein kompaktes Beispiel für die Möglichkeit der Verwendung von Bitmap-Indizes bei der Einschränkung über ein IS NULL Prädikat: bekanntlich enthält ein B*Tree-Index keine Einträge für Datensätze, bei denen alle indizierten Spalten einen NULL-Wert enthalten - während im Bitmap Index ausnahmslos jeder Datensatz indiziert wird. Somit kann eine Bedingung column IS NULL im (more...)

Hadoop-Einführung für Oracle-Nutzer

Eine kompakte und gut verständliche Einführung zum Thema Hadoop for Oracle Professionals hat Arup Nanda veröffentlicht, der darin diverse BigData-Termini und -Konzepte in die Sprache eines RDBMS-Benutzers übersetzt. 

Interpretation von AWR Reports

Ich behaupte zwar bisweilen allerlei - aber nicht, ein Experte auf dem Gebiet der Interpretation von AWR-Reports zu sein. Normalerweise schaue ich fast ausschließlich auf die Query-Abschnitte. Aber wenn ich eine detaillierte Interpretation eines AWR-Reports durchführen müsste, dann würde ich mich an der von Jonathan Lewis in seinem Blog erstellten Link-Sammlung orientieren. Eine hübsch gestaltete einführende Präsentation zum Thema gibt's von Franck Pachot.

Bestimmung der Log-Writer-Aktivität mit strace

Craig Shallahamer zeigt in einem Artikel und einem zugehörigen Mini-Video (Laufzeit 3:11 min) mit Hilfe eines strace-Aufrufs, dessen Ergebnisse er in eine Log-Datei schreiben lässt, dass der log-Writer-Prozess LWGR auch in 12c in einem beschäftigungslosen System alle drei Sekunden aufgeweckt wird, um zu prüfen, ob es etwas zu erledigen gibt. Im Trace-File findet sich regelmäßig ein Aufruf der Semaphoren-Operation semtimedop, die dazu dient einen Prozess für eine bestimmte Zeit in den sleep-Modus zu versetzen, sofern (more...)

Neue Auflage für Troubleshooting Oracle Performance

Eines der besten Bücher zum Thema "Oracle Performance" ist Christian Antogninis Troubleshooting Oracle Performance, dessen zweite Auflage dieser Tage erschienen ist. Offenbar handelt es sich um eine recht umfangreiche Überarbeitung, weshalb ich davon ausgehe, dass sich die Anschaffung auch für Käufer der ersten Auflage noch einmal lohnt.