DB2 - the secret database
IBM trumpets not blowing
DB2 is the most respectable and most powerful database engine in the world: it’s the pinnacle of database development. IBM makes a claim (undisputed to my knowledge) that more structured data is stored in DB2 than in any other database engine.
Certainly, according to the Winter Corporation’s 2005 survey, the largest OLTP (On-Line Transaction Processing) databases in the world are hosted on DB2. The volume prize goes to the Land Registry at 23.1 TB and the prize for the number of rows goes to UPS – 89.6 billion; both run on DB2.
DB2 also holds the current world speed record in terms of transactions per minute (TPC-C benchmark), for whatever that’s worth (TPC benchmarks don’t necessarily reflect real-world performance, although DB2 appears to perform equally well on real data). At 3.2 million transactions per minute the system would be able to support one purchase from every person on the planet every four days. The next nearest contender in the TPC benchmarks is Oracle with less than half the performance. If all that wasn’t enough, the relational model started life at IBM and that company has pioneered its development ever since. DB2 is world class – absolutely no question.
So, how come you don’t use it? Let’s face it, when most people argue about databases, it’s the same old Oracle vs. SQL Server fight, with maybe some Sybase and Informix thrown in. Who mentions DB2? Yet we should.
DB2 has always ruled in the mainframe environment: on that platform it has no peer. In 1996 (ten years ago!) IBM made all the right technical moves to expand the use of DB2 down to the mini and even the PC markets. DB2 was produced in three versions. These have had various names over the years - UDB (Universal DataBase) was often used but it now being gently dropped by IBM. The most useful names I’ve come across are:
• DB2 for z/OS (Mainframe)
• DB2 for iSeries (AS400 as was)
• DB2 for LUW (Linux, UNIX and Windows)
DB2 for iSeries comes free with iSeries hardware, a range of serious computing kit from IBM (an integrated, rather than bolt-on, database has been part of the iSeries architecture since it was called System/38).
Within DB2 for LUW there are different editions:
• DB2 Express Edition – limited to a maximum of 2 CPUs and 4GB RAM
• DB2 Workgroup Server Edition (WSE) - 4 CPUs and 16GB
• DB2 Enterprise Server Edition (ESE) – no limits
About 90 per cent of the source code for DB2 is common across all three of these versions with 10 per cent reserved for platform optimisation.
Technically, this is nothing but good news – a superb database engine is available no matter what platform you use. The problem is that IBM seems to have forgotten to tell anyone about it. Why? My impression is that IBM has become complacent - again. It knows that it has the best database engine and it is waiting for people to beat a path to its door. When did you last see an advertisement for DB2 running on Windows? IBM has got to get its act together.
Did you know about DB2 Express Edition? It runs on Linux, UNIX or Windows; and the two CPUs mentioned above can be dual-core processors so there’s a serious stack of processing power available to it. It is easy to manage, mainly self-tuning, very, very cost effective and my guess is that it is about to get cheaper.
Why? Well, way back in 1997 Janet Perna (then general manager of IBM's data management division at IBM) told me that IBM was watching Microsoft's pricing very closely and that she had no intention of allowing IBM to be beaten on price. I haven't seen much sign of a change in policy since then and, as already reported in Reg Developer, Microsoft's new Express version of SQL Server 2005 is free. My prediction for the very near future is that DB2 express edition will enter the realms of ultimate cost-effectiveness – or ‘free’ as we used to say.
If I’m right, remember you read it first on Reg Developer. (If I’m wrong, obviously forget I ever said it. I certainly will.) The point is, either way, you won’t read it anywhere else much, because IBM probably won’t bother to tell anyone. ®