AS/400 SQL-INSERT-Benchmarks
Um eine ungefähre Vorstellung der relativen Geschwindigkeiten verschiedener Maschinen zueinander zu erhalten, habe ich eine Tabelle definiert (DDS-Quellcode):
A* Record Format Name ******************************************** A R STROMTBL A* Datenfelder *************************************************** A PORT 2B B CHECK(ME) A COLHDG('Port') A WATT 5B B CHECK(ME) A COLHDG('Watt') A STAMP Z B COLHDG('Stamp') A* Indexfeld ***************************************************** A K STAMP
Die Tabelle habe ich dann übersetzt in ein PF:
crtpf (stromtbl) srcfile(tbldescr) maxmbrs(*nomax) size(*nomax) accpthsiz(*max4GB)
Ich habe auf einer Linuxinstallation eine ähnliche Tabelle mit entsprechenden Werten drin. Von dort habe ich 10.000 Zeilen ausgelesen und per ODBC an die jeweiligen Maschine verfüttert.
time mysql -B -N -e "SELECT port, watt, stamp FROM strom LIMIT 10000" stromdb \ |sed -E -f mysql_ts2db2_ts \ |sed -E -e "s/^([0-9])\t([0-9]+)\t([0-9\.-]+)$/INSERT INTO STROMARCH\/STROMARCH VALUES (\1, \2, '\3')/" \ |isql -b as400a
Das Sedscript mysql_ts2db2_ts baut lediglich den MySQL-Timestamp in einen für DB2/400 gültigen um. Da es sich um extended Regex handelt, muss sed mit -E aufgerufen werden.
s/([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/\1-\2.\3.\4.000000/g
Die Maschinen waren frisch gebootet. Danach habe ich nur die Tabellen erstellt und die Inserts abgesetzt. Auf den Maschinen sind keine Optimierungen der SBS-Pools durchgeführt worden. Alle Maschinen haben den gleichen bzw. einen sehr ähnlichen Stand an installierten LICPGMs und konfigurierten Spoolern und Subsystemen/Jobs. Während der Inserts habe ich keine weiteren Aktivitäten durchgeführt. Alle Maschinen sind via LAN (10 MBit/s Ethernet bzw. 16 MBit/s Token Ring) angebunden.
Maschinentyp | OS/400 | Disks | RAM | Zeit |
---|---|---|---|---|
9406-S20 (PFC 2161) | V4R4 | 8× 6607 (RAID5) | 512 MB | 133 s |
9401-150 (PFC 2270) | V4R5 | 4× 6607 | 192 MB | 295 s |
9401-150 (PFC 2270) | V4R5 | 3× 6606 | 128 MB | 314 s |
Pub400.com, außer Konkurrenz[1] | V7R2 | Unbekannt[2] | Unbekannt | 1080 s[3] |
Interessanterweise ist selbst die langsamste Maschine nicht spürbar langsamer geworden, während die Inserts liefen (zu einem anderen Zeitpunkt).
Fußnoten
- ↑ Es handelt sich um Holger Scherers öffentlich zugängliches System pub400.com.
- ↑ Die Installation läuft als virtuelle Partition auf Hardware, Ressourcenallokation ist dynamisch.
- ↑ Hier fließen zusätzlich die via Internet vorhandenen deutlicheren Latenzen mit ein, ca. 36 ms mit 64-Byte-Paketen.