Oracle XE unter Ubuntu 9.04 Jaunty x64 installieren
Nach längerer Zeit soll es heute mal aus gegebenen Anlass ein neues Tutorial geben. Diesmal geht es um die Installation von Oracle XE unter einer 64-Bit-Version von Ubuntu - konkret der aktuellen Serverversion 9.04 Jaunty. Es wird auch gezeigt, wie einfach die APEX-Oberfläche auch via Netzwerk erreichbar gemacht werden kann.
PostgreSQL: INSERT – on duplicate key UPDATE
In diesem Beitrag soll es heute weniger um die Diskussion gehen, inwieweit MySQL ein gutes DBMS darstellt, sondern um die Problematik, wie man ein INSERT ... ON DUPLICATE KEY UPDATE, welches durch MySQL unterstützt wird, in ähnlicher Form unter PostgreSQL abbilden kann. Erst einmal gilt generell: PostgreSQL unterstützt dies nicht nativ, sodass diese Funktionalität über Umwege bereitgestellt werden muss. Folgen wir diesem Umweg, werden wir letztlich bei der Notwendigkeit einer Function landen. Mit Hilfe von Functions können wir eine ganze Abfolge von Datenbankabfragen aufnehmen und für den Client in einem Funktionsaufruf zusammenführen.
Oracle Indizes – Weniger ist manchmal mehr
Im zeitlichen Verlauf einer Applikation steigt üblicherweise der Datenbestand stetig an und führt zunehmend zu Performanceproblemen. Vor allem im Bereich der Datenbanken wird dies durch die steigende Anzahl an sogenannten Slow Queries ("langsame Abfragen") erkenntlich. Der erste Schritt in Richtung Optimierung ist daher immer das Monitoring der Applikation bzw. der Datenbank. Vor allem das Platzieren von Indizes ist hierbei wichtig und meist auch notwendig, hilfreich aber letztlich nur, wenn Sie auch korrekt und sinnvoll definiert werden.
JDBC: Aufruf einer Procedure in Oracle
Im Rahmen der Entwicklung einer Applikation ist die Auslagerung von Programmlogiken direkt in die Datenbank meist eine Vereinfachung und gleichzeitig gute Performanceoptimierung. Ein kurzes Beispiel soll zeigen, wie man eine oder mehrere Prozeduren mit Java über eine JDBC-Verbindung aufruft.
PL/SQL Procedures und Select For Update
In der Praxis werden aufwendige Ausgaben häufig asynchron über CronJobs oder eigene EventScheduler ausgeführt, damit Benutzeraktionen möglichst ohne Verzögerungen ausgeführt werden können. Dies stellt auch kein Problem dar, da viele Plattformen auf eine verzögerte Aktualisierung von Ausgabeseiten setzen. Das beste und fast jedem bekannte Beispiel ist vermutlich das Onlinebanking bei der Hausbank.


