Has anyone used all three of these databases? What are you experiences with them? PostgreSQL is starting to look pretty tempting to use for a project but I'm curious to learn more about it (We're a .NET Shop). I've also heard quite a lot of people being satisfied with DB2.
If you're a .NET shop, and are either using a small database (i.e. Sql Server Express), or have the money for the full SQL Server, use it. SQL Server will perform better than PostgreSQL for most actions, and about the same as DB2.
PostgreSQL is fantastic if you need multi-platform support, are Linux-based, or need a free product that's not Microsoft.
I haven't used DB2 in over 10 years, other than running an in-house performance test vs. other databases (where it was about the same for a transactional database as Oracle/SQL Server, where were better than MySQL, PostgreSQL, etc).
If you are a .net shop stay with SQL Server.
Using any other database platform would require non-Windows to get the best out of it. On Windows, SQL Server is king simply because MS own both OS and SQL Server (Like Oracle/Red Hat).
As a DB2 person, I can offer a few details about what you could expect from running DB2 for Windows and developing .NET applications for it. The current version, 9.7, was released in June 2009.
- Drivers and API support for just about any Windows programming language and IDE, including .NET and Visual Studio extensions
- A no-cost, production-ready database engine (Express-C) that has no database size limit and is the least restricted when compared to Oracle Express and SQL Server Express
- A self-tuning database engine for Windows that automatically handles the sizing of several memory buffers that are critical to good performance
- Rock-solid support for XML as a native datatype, handled by its own dedicated query engine that is optimized for XML's hierarchical nature. Queries can access any combination of XML and tabular data with any combination of SQL and XQuery expressions