eWeek heeft onderzoek gedaan naar de performance van vijf grote databaseservers in een Windows 2000 omgeving. Het testveld bestond uit IBM DB2 7.2 met FixPack 5, Microsoft SQL Server 2000 Enterprise Edition met Service Pack 2, MySQL 4.0.1 Max, Oracle9i Enterprise Edition 9.0.1.1.1 en Sybase ASE (Adaptive Server Enterprise) 12.5.0.1. PostgreSQL deed niet mee wegens het ontbreken van een Win32 port. De genoemde databases werden getest onder Windows 2000 Advanced Server SP2 op een quad Xeon 700MHz met 2GB RAM en 24 10.000rpm Ultra160 SCSI schijven. De database load werd gesimuleerd door vanaf twee HP NetServer machines met zes processors, 4GB RAM en gigabit ethernet een bookstore applicatie te draaien op de WebLogic applicatieserver van BEA Systems. De connectie met de database verliep middels JDBC (Java Database Connectivity). Naar eigen zeggen is dit de eerste keer dat een dergelijk grootschalig onderzoek heeft plaatsgevonden sinds PC Magazine een vergelijkbare test deed in oktober 1993.
![]() |
Teneinde tot een betrouwbaar en eerlijk resultaat te komen, werd getracht om alle databaseservers optimaal te tunen. Hierbij kreeg eWeek onsite support van MySQL AB en Sybase technici. Microsoft en Oracle weigerden hun medewerking te verlenen en IBM gaf ondersteuning via email. Gemiddeld bleek een getunede database ongeveer twee keer zo snel te zijn als dezelfde software met de standaard instellingen. Eén van de vereisten van de benchmark was support voor transacties. MySQL AB maakte hierbij optimaal gebruik van de mogelijkheden van MySQL om gebruik te maken van verschillende geïntegreerde database engines. Zo werd InnoDB gebruikt voor de tabellen die ondersteuning voor transacties vereisten en het lichtere MyISAM tabel-type voor tabellen waarbij geen transacties noodzakelijk waren.
Uiteindelijk bleken Oracle 9i en MySQL 4.0.1 de beste performance te bieden, zowel wat betreft de throughput die de applicatieservers konden genereren als in de response tijden. MySQL en Oracle bereikten beide maximaal 600 pagina's per seconde bij 700 tot 1000 gelijktijdige users. Sybase presteerde vergelijkbaar met Oracle en MySQL tot op het punt waarop de grens van 600 gelijktijdige users werd bereikt. Bij meer users kon de server niet verder schalen dan 500 pagina's per seconde. IBM's DB2 viel terug in performance zodra de grens van 600 users werd bereikt. Daarbij viel de performance terug van 500 tot 200 pagina's per seconde. SQL Server kwam niet verder dan 200 pagina's per seconde.
![]() |
De gebruikte JDBC drivers bleken van grote invloed op de performance. eWeek herschreef de benchmark in ASP .Net en bracht SQL Server met de OLE DB driver van Microsoft tot een performance van 900 pagina's per seconde en een bijna perfecte schaalbaarheid. De prestaties zijn dus aanmerkelijk beter dan in de Java omgeving. Dit geeft aan dat de resultaten van benchmarks niet representatief zijn voor andere applicatie omgevingen zoals PHP. Ook is het denkbaar dat de databases op dezelfde hardware optimaler presteren onder een ander besturingsysteem zoals bijvoorbeeld Linux.
De goede performance van MySQL 4.0.1 was voor een belangrijk deel toe te schrijven aan de nieuwe query cache die in 4.0.1 werd geïntroduceerd. De query cache kan identieke queries direct vanuit geheugen beantwoorden mits de inhoud van de betreffende tabellen niet is gewijzigd sinds de laatste keer dat de query werd uitgevoerd. Versie 4.0.1 heeft overigens nog de alpha status.
Het artikel van eWeek kun je hier nalezen. Met dank aan Verwijderd voor het geven van de tip.