In June of 2008 I wrote a post comparing Oracle XE and IBM DB2 Express-C. This proved to be a very popular subject with blog post receiving thousands of views. Two years has passed, an eternity in our industry. I decided that it was time to take another look to see how passage of time has affected each database product.
Oracle XE: a five years of no progress
Let me jump right in to Oracle XE. There has been no update to the product since its release almost 5 years ago (Oracle XE was released in November of 2005). It is the same Oracle 10g Release 2 code base and it has now fallen way behind Oracle database. Does it make Oracle XE a bad choice? Should you worry? I think it really depends on what your intended usage is.
Learning with Oracle XE
At the time of its release, I thought that Oracle XE was a great way for people to gain skill in Oracle database technologies. After all, Oracle XE was based on the same code as the paid (and very expensive) commercial versions of Oracle database. Having the same product free of charge and an easier to install product on your own laptop makes for a good learning environment. Now, 5 years later, Oracle XE can still be used as a learning tool but, sadly it can’t be used to learn any of the features that were introduced in Oracle 11g and Oracle 11g R2. In my opinion, Oracle XE’s appeal as a starting point for those who want to learn Oracle has been greatly diminished.
Oracle XE for development and Test
If you intend to use Oracle XE to build applications, I think you will be even more disappointed. Most developers I know want to have a development environment that closely mirrors their intended production environment. After 5 years, I expect Oracle 10g R2 does not have a lot of life left in it and people building new applications are likely looking to deploy on the most recent version i.e. Oracle 11g R2.
Betting your business: Oracle XE in production is a really bad idea
When it comes to using Oracle XE in production, I always thought that it was a really bad idea. Oracle XE is limited to storing 4GB of data. When you reach this limit, you are in a world of pain and embarrassment. 4GB in today’s world just does nto cut it. Even Microsoft SQL Server 2008 R2 Express Edition increased the limit on the amount of data it can manage to 10GB (from 4GB) and DB2 Express-C never had a limit. For me, any limit on the amount of data you can store in the database should raise a flag when it comes to production use. 4GB limit is just a nail in the Oracle XE coffin when it comes to production use. However, there is another reason that makes Oracle XE even less appropriate (if it could ever be even less appropriate) for production. Oracle XE is based on the code base that had several hundred security vulnerabilities that Oracle has addressed in other editions of its database products. None of these fixes are available for Oracle XE users … not one. Would you want to put your application in to production when you know that it has hundreds of security vulnerabilities that you will not be able to address? It s a rhetorical question. In our office, IT security team conducts frequent security scans of all systems and compares installed products against the database of vulnerabilities. Once they find your system to be affected, you get a chance to patch the products or they get disabled. My Oracle XE obviously does not pass the test so I can’t even run it on my laptop, never mind contemplate its use on a production server. So, if I want to play with Oracle XE, I have to do it at home on my own machine.
IT products don’t die, they just fade into obscurity
That brings me to my next point. Oracle XE is available for 32-bit Windows and Linux. If you shopped around for a computer lately, you probably noticed that it is impossible to get anything but a 64-bit Windows 7 machine. Oracle XE is still stuck in the 32-bit Windows XP world. Oracle released Express Edition 5 years ago in an effort to stem the advance of MySQL. MySQL was eating away the low end while IBM DB2 was giving Oracle run for its money on the top end and Microsoft SQL Server was biting it in the middle. At the time Oracle XE was released I did nto think it was going to become an important play for Oracle. Now, five years later and with Oracle’s acquisition of MySQL, the only words that come to mind when describing Oracle XE are “dead end”.
IBM DB2 Express-C
Contrast this with IBM DB2 Express-C which has had a constant stream of updates and enhancements. Take a look at this article to see the new features introduced in the latest version 9.7.2 of DB2 Express-C. Not only is DB2 Express-C consistently kept at the same level as higher value DB2 editions, we also lead with DB2 Express-C in some cases. For example, when it came to bringing database capability to Cloud Computing, we launched with DB2 Express-C first on Amazon EC2 cloud, RightScale, and IBM Smart Business Development and Test on the IBM Cloud (IBM Development and Test Cloud). Our partners have picked DB2 Express-C and carried it in to the cloud as well.
DB2 Express-C: a great destination or a first step in to something bigger
By providing access to the same technology as the rest of the DB2 products, DB2 Express-C presents an excellent choice as a learning tool for anyone who wants to gain DB2 skills. And when it comes to application development, it is a perfect fit as it not only allows one to exploit all of the latest features of DB2 at no charge but also provides a transparent path to higher value editions of DB2. Any application you develop with DB2 Express-C is guaranteed to run with larger more powerful DB2 servers without any changes to your application code. You can use DB2 Express-C in production and take advantage of 2 CPU cores and 2GB of memory (your server hardware can have any number of cores and any amount of memory). That is twice the resources you get with Oracle XE. If this is not sufficient, you can upgrade your DB2 server up to DB2 Express to take advantage of 4 cores and 4GB of memory. Remember, no change of the application code is required. 4 cores and 4GB still not enough? Upgrade your DB2 installation to DB2 Workgroup Edition and take advantage of 16 processor cores and 64GB of memory (as of today, DB2 Workgroup Edition will take advantage of 64GB of memory). Facing explosive growth and still need more capacity? Move up to DB2 Enterprise Edition or the just announced DB2 Advanced Enterprise Edition and take advantage of all all the hardware resources your server can deliver. All of it with zero changes to the application while exploiting all of the scalability, reliability, security and performance features. Not a bad path for something that is free!
At this point you are probably thinking that this is a “bait and switch” tactic where IBM gets you hooked with its free DB2 Express-C and then hits you with an outrageous price to move up to the next level. Rest assured it is not an evil plot. To move up from the free DB2 Express-C to a fully supported DB2 Express with its extra resources (4 cores, 4GB of memory) and features (replication, built in high availability/disaster recovery clustering, and backup compression) used to cost $2,995/server/year. This is a great price if you consider that is what Oracle charges for comparable MySQL Enterprise Gold subscription. As of today, we reduced the price for DB2 Express subscription to $1,990. Yes, you read this correctly; DB2 Express subscription is now 2/3 of MySQL subscription price. Some people prefer to purchase thier license outright instead of getting a yearly subscription. DB2 Express can also purchased as a perpetual license for about $6,000.
In my original post two years ago I said that
I am still biased but I no longer like Oracle XE. From the very beginning its future was tenuous. With Oracle’s acquisition of MySQL it is quite clear that Oracle XE is at the end of its road. DB2 Express-C on the other hand has been continuously enhanced with cutting edge features. And unlike Oracle XE which takes you to a dead end, DB2 Express-C provides a very clear growth path that wil take your application where it needs to be no matter how big its needs to be and how fast it needs to get there. I believe that with MySQL replacing of Oracle XE at the low end of the portfolio, it makes more sense to compare DB2 Express-C to MySQL than Oracle XE. I think I will do just that in one of my future posts. I will say, however, that with today’s price reduction for DB2 Express, MySQL is at a big disadvantage. Just as MySQL, DB2 Express-C is available free of charge and just like MySQL it provides optional low cost support. However, that is where the similarities end. DB2 Express-C delivers the same leading edge technologies that are used by the world’s largest enterprises for their most critical applications. MySQL, on he other hand, shares nothing in common with Oracle database products. The fact that it is owned by Oracle corporation is an accident and the story around it continues to unravel. But don’t take my word for it, download free DB2 Express-C. Get the free book to help you get started and while you are at it get free tools to help you manage your DB2 databases.