![]() | |||||||||||||||||||||||||||
Of the major players, Oracle and Microsoft have shown the most growth in the last two years, with Oracle’s market share growing by 14.9% and Microsoft’s growing by 28%. When our clients contemplate new solutions, the choices most often discussed are Oracle, SQL Server, PostgreSQL and MySQL. PostgreSQL and MySql are available as open source products (GNU GPL3 licensing) or with commercial GPL licenses that include support. Oracle is purchased directly from Oracle Corporation. SQL Server is purchased through an authorized Microsoft reseller. Oracle and SQL server come in a variety of versions from basic to "enterprise." PostgreSQL (slang "post grez") runs on Windows, Solaris and various Linux distributions. It is an outgrowth of a database project at the University of California Berkeley and was the core of Michael Stonebraker’s Illustra startup. The latest version, 8.3, is available in beta form with release scheduled for November 2007. It adds full text search, a finished PL/pgSQL script debugger, and clustering code (ripped from Skype) to better accommodate load balancing and implement a limited form of parallelism. PostgreSQL is available with commercial support through EnterpriseDB, a startup company that employs Bruce Momjian, one of the key PostgreSQL developers. On the negative side, PostgreSQL does not support replication out of the box, does not support partitioning of tables or indexes to any great extent, and does not include the sophisticated backup and restore functionality that comes with commercial database solutions. One must put together the development toolkit from a smorgasbord of open source options—some good and some bad. Development resources are always a concern. From the developer’s perspective, PL/pgSQL bears remarkable similarity to PL/SQL. It is difficult to find unbiased performance benchmarks for any RDBMS, but the general sense is that PostgreSQL performance on Linux trails Oracle, which is not surprising given the cost deltas between the two products. MySQL is an open source database engine that was originally developed for the Python programming language and is currently owned by MySQL AB. MySQL gets a lot of attention, but those who have lived with it humorously refer to it as "the best write once read many relational databases ever built." MySQL can be used successfully as a traditional read/write/update OLTP database for a small number of users. Under heavy load, however, MySQL is apt to crash unexpectedly on you. If your requirements call for a replicated, read-only often reloaded instance, like you might deploy in a DMZ to be available over the World Wide Web, MySQL running on Linux is a very attractive option in terms of price/performance. Many users choose php for Web development in this environment. You can’t beat the price! Comparing Oracle and SQL Server is in many ways similar to arguing theology; there are very strong feelings on both sides with strong emotional attachments to one or the other. Both vendors offer innumerable white papers "proving" that one is far superior to the other. Oracle 11g was just formally released. It features a native PL/SQL compiler (no doubt to counter SQL Server’s new found ability to execute compiled .NET code). It also includes more sophisticated caching, fine grained dependency, virtual columns and more advanced partitioning. SQL Server 2008 is in the public beta phase. It features a new declarative management framework that allows the developer to define business entities (i.e. object models) as opposed to tables and columns and to query them using language integrated queries (LINQ), a form of structured query language that runs against an in-memory data structure. SQL Server 2008 continues to push the disconnected record set paradigm, adding the ability to replicate subsets of data to an occasionally connected client. Both vendors continue to enhance their business intelligence (BI) and data mining capabilities. In general terms Oracle costs more, and for the extra investment you get a solution that runs a larger database (100GB and up) and scales up more easily. Oracle has been on the 64 bit UNIX platforms (R9000/AIX, Sun/Solaris, others) since these product’s inception. Microsoft is just getting its feet wet on the Itanium. It is generally easier to manage a single, large database server than a cluster. Oracle runs on Windows, but is more suited to a UNIX variant. Oracle is developed on UNIX first and subsequently ported to Windows. SQL Server only runs on Windows (no surprise there) with a special "Data Center" edition of Windows Server specifically optimized to host a large SQL Server instance. Oracle supports shared disk cluster scalability (RAC) with grids of four to eight servers. Microsoft counters with a federated approach, but there is really no comparison with respect to the ability to support automatic fail over and share memory between nodes. On the other hand, implementing and supporting Oracle RAC is notoriously difficult, requiring high end switches for server interconnects. If you prefer several commodity servers to one large, potential single point of failure server, and replicated instances don’t serve your needs, RAC is your best choice—but it should not be implemented as a cost saving measure. Both databases do simple replication schemes with ease. Oracle does much better with repetitive, dynamic SQL, assuming that the SQL is executed multiple times within the same session. Oracle has the edge when accessing hierarchical data. The out of the box distribution for SQL Server includes a complete, highly integrated development environment that validates Microsoft’s reputation for the best developer toolkits. You get business intelligence tools, a report writer, a graphical data transformation package builder, and a high degree of integration with Microsoft’s .NET development platform. With Oracle you get the database and a mediocre set of Java based database administration tools. Oracle users usually source development tools from other vendors such as Quest Software. Both databases let you do everything from the command line, the preferred method of administration for seasoned professionals. For the database developer, SQL Server has much better error messages. The friendly online development community contains a wealth of beginner to advanced level assistance. Oracle online resources contain a substantial depth of information, but are not nearly as beginner friendly. Both vendors have barely adequate documentation. Microsoft gives you a great basic reference that is difficult to navigate. Oracle gives you good navigation but no examples and obtuse reference maps that represent command syntax. In both cases using Google to find answers yields faster results that are right most of the time. SQL Server’s procedural language, T/SQL, is more BASIC like; PL/SQL looks more like C. SQL server is ridiculously easy to install out of the box, and if you do no tuning whatsoever it will run acceptably. Oracle is fairly easy to install, but you must perform some configuration tasks in order to obtain reasonable performance. Once properly installed and configured, Oracle doesn’t get sick very often but when it does it really helps to know what you’re doing. When dealing with the support teams for either product, the level of support received is directly related to the cost of the maintenance contract, both are poor to fair at the lowest level and absolutely superb at the highest level. So which one should you choose? If you anticipate terabyte sized databases, with a room full of dedicated high priced database gurus, then Oracle is where you should start your vendor selection process along with DB2 and Teradata. Less than 100GB database size the decision is considerably more difficult. • Microsoft is the clear winner if you want an out of the box, single source, and highly integrated end to end development stack. • If you’re a UNIX shop, you’ll probably choose Oracle or PostgreSQL. • If you’re a Microsoft shop, you’ll probably choose SQL Server. • If your requirements demand the features Oracle offers, albeit at a higher price, the decision will be obvious. • PostgreSQL is certainly something to watch and consider if you are willing to live in an open source world and have development resources that are willing to learn it. • MySQL is a niche product that works extremely well in the right situation.
Recent NewsStout Systems welcomes new employee Brian Skory (Technical Staffing Consultant). |
|
| |||||||||||||||||||||||||
Stout Systems, P.O. Box 2934, Ann
Arbor, MI 48106 · Voice 734-663-0877 · Fax 734-663-7659 ·
Copyright © 1995-2008 Stout Systems Development Inc. All Rights Reserved. Trademark & Legal Notice. Site Map Design by Fast Forward |