Donnerstag, August 28, 2014

Commit-Korrekturen mit git

Hat nichts mit Datenbanken zu tun, sondern mit Versionsverwaltung: git benutze ich zwar schon seit einiger Zeit, habe es aber trotz ernsthafter Absichten nie geschafft, mir die Details ausreichend genau anzuschauen, um auf unerwartete Probleme angemessen reagieren zu können. Daher hat mir der Hinweis eines Kollegen auf den Artikel On undoing, fixing, or removing commits in git von Seth Robertson sehr geholfen, denn darin steht, was zu tun ist, wenn man sich in eine unglückliche Lage manövriert hat.

Montag, August 25, 2014

Neue Features in Postgres

Eine kleine Sammlung neuer Features, die in Postgres 9.4 eingeführt wurden bzw. in 9.5 eingeführt werden sollen - oder darin wünschenswert wären:
  • Craig Kerstiens hat dieser Tage seine Wunschliste mit neuen Features, die er gerne in Version 9.5 sehen würde, veröffentlicht. Auf Position 1 steht dabei das Upsert - aka MERGE - und das scheint auch mir die erstaunlichste Lücke im gegenwärtigen postgres-Funktionsumfang zu sein. Immerhin ist es seit Version 9.1 möglich, MERGE mit Hilfe von CTEs nachzubilden - allerdings scheint das Verfahren ein paar potentielle Probleme (race conditions, lost updates) hervorzurufen.
  • Über ein in 9.5 definitiv umgesetztes Feature schreibt Michael Paquier: die Möglichkeit, das WAL-Logging für eine Tabelle via ALTER TABLE zu aktivieren und zu deaktivieren. Grundsätzlich gibt es unlogged tables bereits seit Version 9.1, aber eine Umstellung des Verhaltens war bislang nicht möglich.
  • Josh Berkus erläutert die bereits mit 9.4 eingeführte Funktion percentile_cont, deren Verhalten anscheinend dem der gleichnamigen Funktion unter Oracle entspricht.

Freitag, August 22, 2014

Abgeleitete IS NOT NULL Prädikate

Jonathan Lewis weist (im Rahmen einer Quiz-Frage, die sehr schnell ihre Antwort fand) darauf hin, dass der Optimizer implizite IS NOT NULL Prädikate schon seit vielen Releases aus der Join-Bedingung ableiten kann (im Sinne von: wenn ein Join durchgeführt wird, kann die Join-Bedingung keine NULL-Werte enthalten haben).

Mittwoch, August 20, 2014

drop table people

Wenn es bei xkcd einen Strip mit SQL-Queries gibt, muss er hier verlinkt werden - auch wenn's vielleicht eher um ein philosophisches Problem geht.

Dienstag, August 12, 2014

Definition von AWR Intervallen

Doug Burns hat dieser Tage in seinem Blog zwei Artikel zum Thema der Definition von AWR Intervallen veröffentlicht. Erinnerungswürdig scheinen mir dabei vor allem die folgenden beiden Punkte:
  • in einem produktiven System ist es sinnvoll, die Retention der AWR Snapshots auf einen deutlich höheren Wert als den default von 8 Tagen zu setzen (35-42 Tage oder gleich: unbegrenzt). 
  • weniger sinnvoll ist es, die AWR Intervalle selbst zu verkürzen: also vom Standard-Intervall von 1h auf 15 oder 30 min zu gehen. Die Begründung dieser Empfehlung ist, dass es zum Zweck der detaillierten Analyse andere geeignetere Tools gibt (ASH, SQL Monitoring), während AWR eher zur globalen Analyse des Systemverhaltens gedacht ist, und in diesem Fall erschweren kleinere Intervalle die Auswertung.
Das halte ich für einleuchtend.