Die Oracle Datenbank ist sehr komplex. Sie bietet eine Vielzahl von Möglichkeiten zu ‘tunen’. DirectIO ist nur eine Maßnahme.
Nun was hat es mit dem ‘DirectIO’ auf sich? – Es soll den Filesystemcache des Betriebssystems umgehen, was dann doppeltes Puffern umgeht und Oracle allen das Zwischenspeichern der Daten überlässt.
Nun – nicht jedes Dateisystem unterstützt diese Option. folgende Systeme sind jedoch nicht nur oft verbreitet, sondern auch fähig mit dieser Option zu arbeiten:
- ReiserFS (‘notail’ mount!)
- ext2
- ext3
- NFS
In der ‘INIT.ORA’ kann der Parameter ‘filesystemio_options=directio‘ für die Aktivierung sorgen. Diese Option ermöglicht allerdings “nur” das synchrone IO – Für den asynchronen Zugriff muss der Parameter wie folgt aussehen:
filesystemem_option=setall
(Oracle 9i kennt diese Optionen nicht per default nicht – Bei Oracle 10g R2 ist es bereits mitkompiliert – es muss also nur noch aktiviert werden.)
Es hat sich bei Tests gezeigt, dass die Leistung bei Schreibzugriffen der einzelnen Prozesse etwas zurückgeht. Um diesen Umstand auszugleichen sollte der Parameter “db_writer_processes” auf die Anzahl der vorhandenen Prozessoren – mindestens aber auf 4 gesett werden.