Freitag, Oktober 17, 2014

Detailsinformationen zu den system statistics

Franck Pachot liefert im dbi services Blog ein nettes Skript zur Analyse der Systemstatistiken, auf denen das Costing des Optimizers basiert. Dabei ergänzt er zu den Basisinformationen aus (SYS.)AUX_STATS$ diverse Angaben zu ihrer Berechnung, die man sich ohne Skript mehr oder minder mühsam zusammensuchen muss.

Mittwoch, Oktober 15, 2014

Optimierung für pg_dump und pg_restore

Josh Berkus erwähnt in seinem Blog einige Optionen, mit denen man die Performance der postgres-Export und Import-Tools pg_dump und pg_restore verbessern kann. Die Liste enthält unter anderem folgende Punkte:
  • Parallelisierung über die -j multiprocess Option (für pg_restore und seit 9.3 auch für pg_dump).
  • Komprimierung des Dumps bei der Erstellung.
  • Deaktivierung der Binär-Replikation im Zielsystem während des Imports.
  • Anpassungen der postgresql.conf des Ziel-Clusters zur Unterstützung einer schnellen Wiederherstellung. Die Wiedergabe der genannten Optionen erspare ich mir.
Da das Importieren von postgres-Dumps ohne Optimierung eher zäh abläuft, werde ich diese Hinweise bei nächster Gelegenheit berücksichtigen.

Sonntag, Oktober 12, 2014

Read Privileg in 12.1.0.2 (ohne Select for Update)

Zu den eher unverständlichen Entscheidungen, die man bei Oracle im Zusammenhang der Definition von Privilegien gemacht hat, gehörte sicherlich die Zuordnung des Rechts zur Ausführung der Operation SELECT FOR UPDATE zum einfachen SELECT-Privileg. Dadurch konnten Benutzer allerlei Unfug anstellen, weil die Operation recht massive Sperren erzeugt. In 12.1.0.2 gibt es jetzt das neue READ-Privileg, das SELECT FOR UPDATE explizit nicht mehr enthält. Den Hinweis auf diese Ergänzung habe ich bei Gary Myers gefunden.

Dienstag, Oktober 07, 2014

SQL Developer Tipps

Nachdem ich im September bei sehr vielen Artikeln der Reihe 30 Posts in 30 Days von Jeff Smith den Eindruck hatte, dass da Features erwähnt werden, die ausgesprochen nützlich wären, wenn ich sqlplus gelegentlich beiseite legen würde, scheint's mir angemessen, den Index-Artikel zur Serie zu verlinken. Der SQL Developer ist wirklich ein großartiges Tool - insbesondere in Anbetracht seines Preises.

Montag, Oktober 06, 2014

Log File Sync, Log File Parallel Write und Durchschnittswerte

Nikolay Savvinov erläutert in seinem Blog die Probleme, die sich ergeben, wenn man die im AWR angezeigten Duchschnittswerte der Events Log File Sync (LFS) und Log File Parallel Write (LFPW) allzu ernst nimmt. Dazu noch mal eine minimale Definition der Events:
  • Log File Sync: ist das Event, auf das User-Sessions warten, die ein Commit abgesetzt haben, das vom LWGR verarbeitet werden soll.
  • Log File Parallel Write: ist das Event auf das der LWGR wartet, der die Inhalte des log Buffers auf die Platte schreiben will. Dies ist demnach ein I/O-Event. Da der LWGR mehrere Session-Commits in einem Gruppen- (oder Piggyback-) Commit zusammenfassen kann, können sich für LFPW verlängerte Wartezeiten ergeben, die dann zu verlängerten LFS-Waits führen.
In einem Single User System liegen LFS und LFPW recht nah beieinander, aber je mehr Sessions gleichzeitige Commits absetzen, desto mehr Gruppen-Commits ergeben sich und desto stärker werden die durchschnittlichen LFS-Waits verlängert (die LFPW-Waits natürlich auch, aber der Effekt betrifft LFS stärker, da jedes LFPW-Waits mehrere LFS-Waits hervorruft). AWR-Durchschnittswerte sind in diesem Fall deutlich weniger aussagekräftig als ASH-Daten oder Wait-Histogramme. Ich spare mir an dieser Stelle die komplette Nacherzählung der Untersuchung (und ihrer Schlussfolgerungen), ergänze aber noch den auch beim Herrn Savvinov erwähnten Link auf einen älteren Artikel von James Morle, der sich dem gleichen Thema widmet.