woensdag 21 mei 2014

Out-of-the-box performance, and why you should not care.

Every now and then someone wants to compare the performance of two databases, one of which he usually doesn't know anything about. In an attempt to make it a fair fight he does two clean installs and does not tune the database he has experience with, thinking that  two untuned databases will make equal use of the server's resources and thus give some sort of baseline performance indication.

The truth is that databases ship with default settings that are designed to make sure that the clean install will startup on any server it is installed on. It does not assume that it can hog 80% of RAM the way a production database can, and it does not associate itself to n-1 of the available cores. Consequently the performance of cleanly installed, untuned databases is very bad

However, this means exactly nothing because nobody runs untuned database servers. The comparison is between two setups that do not occur in the real world.

If you want to know how a database will perform in your situation then you need to test it in your situation; install it on a server that meets the database's preferences (yes, databases prefer certain hardware), tune it to the size of the database, design the schema to make full use of the available features, and run queries under a real-world load.