In diesem Beitrag vergleichen wir SecureFiles und BasicFiles. Es gibt einige Beiträge auf anderen Webseiten die zeigen wie schnell Secure Files sind, aber ich möchte diesmal einige Fakten und Benefits der NOLOGGING Option aufzeigen, welche bereits in einem früheren Beitrag auf diesem Blog beschrieben wurde.
The default value of the initialization parameter DB_SECUREFILE has changed in 12c from PERMITTED to PREFERRED
Die Test Umgebung
Alle hier angeführten Test wurden auf unserer eigenen Oracle Exadata X2 (Patch Level Jänner 2014) unter OEL5 auf einer 11.2.0.4 Datenbank durchgeführt.
Es wurde dafür die Tabelle lob_test erstellt und die NOCACHE Option aktiviert, welche mit der NOLOGGING Option zwingend notwendig ist.
Das wurde getestet
Zuerst wurde ein Load und Unload Test mit 5 Gigabyte Daten (500 Files) durchgeführt, wobei jede einzelne Column seperat getestet wurde. Es wurden Basicfile vs. SecureFile und die NOLOGGING Option vs. LOGGING Option verglichen. Zusätzlich wurde auch die FILESYSTEM_LIKE_LOGGING Option gestestet, welche laut Dokumentation keinen bzw. minimalen Effekt in Vergleich zu NOLOGGING zeigen sollte:
In this case, if NOLOGGING is the default value, the SecureFile will default to FILESYSTEM_LIKE_LOGGING.
Bitte beachten Sie, dass es sich bei den Tests nicht um einen klassischen Performance Benchmark, sondern um die Simulation einer üblichen Applikation handelt. Die Ergebnisse zeigen einen Vergleich der Performance Steigerungen auf der eingesetzten Hardware.
Test #1 Execution Time
Die Load Time zeigt die Zeitspanne für das Laden von 500 Files in die Test Tabelle. Die Diffenenz zwischen Lob2 und Lob3 ist marginal, was auch Sinn macht. Das Basicfile Lob5 mit NOLOGGING benötigt 127 Sekunden um die Daten zu laden, im Vergleich dazu benötigt Lob3 nur 14 Sekunden. In diesem Fall ist das Laden via SecureFile also 9x schneller als via Basicfile.
Der umgekehrte Weg beim Unload der 500 Files von der Tabelle in das Filesystem zeigt ein ähnliches Bild. Das SecureFile benötigt circa 550 Sekunden für den Unload, das Basicfile benötigt 2351 Sekunden und ist circa 4x langsamer.
Test #2 IO Performance
Der I/O Durchsatz wird mit MB/s beim Laden in die Tabelle gemessen. Das Securefile erreicht einen Wert von 358/MB auf lokalen Server Harddisks. Das Basicfile erreicht nur 39 MB/s im NOLOGGING Mode.
Test #3 NOLOGGING Performance
Die NOLOGGING Performance bedeutet auch wie die Redo Information geschrieben wird. Das Securefile lob1 benötigt circa 5100MB Redo, was etwa der Datenmenge entspricht die in die Datenbank geladen wurde.
Interessant ist, dass das Basicfile 176MB Redo Data benötigt.
Das SecureFile benötigt nur 30MB, was circa 6x geringer ist.