Release 2 of the Oracle Database 11g is now generally available on Linux and will be for Windows, UNIX and other platforms in due course. As one might expect there is a lot in it, so I'll pick some highlights.
Starting with data warehousing, there are a couple of major features worth mentioning: parallel statement queuing and in-memory parallel execution. What the first of these does is to determine the optimal degree of parallelisation for any incoming query, which might be none if it is a look-up and might be a lot if involving multi-way joins; or, more specifically, is it more efficient to do a table or partition scan than an index lookup. It then looks to see if the necessary resources are available and, if so, assigns the query. If not, it puts the query in a queue with queries being processed from the queue on a first in first out basis. Further, these queues can be assigned to a resource pool that is itself determined by query priority.
The in-memory capability is designed to bridge the gap between queries that access large tables rather than small ones. Small tables can be read into buffer cache. However, large tables are too big for that so what this new facility does, for tables up to around 3Tb (actually depending on the amount of available memory and the compression ratio of the data), is to place fragments of these tables into memory on different nodes in order to speed up query processing.
From an OLTP point of view there are a couple of major new features, notably support for compression (and there is a compression advisory) of between two and four times, and enhancements to the in-memory database cache. The latter, note, is not in the database but sits in the middleware layer along with Oracle Fusion Middleware. In this release it is much more directly compatible with 11g, supporting the same SQL, APIs and datatypes and now supporting stored procedures as well. However, there is further work to do in this regard. Oracle reckons that these two features—compression and in the in-memory database cache—should provide substantial performance improvements.
I'd like to mention just two more features. One is with respect to RAC (real application clusters) and specifically what Oracle calls an Oracle RAC One Node. This has been introduced to allow users to deploy single instance line of business or departmental databases onto a cluster, therefore taking advantage of its high availability characteristics. Upgrades to a multi-instance database can be done online.
Which brings me onto my final point of interest, which is what Oracle calls its Maximum Availability Architecture. There's a lot in this but I am particularly interested in the product's ability to support application upgrades online, since this directly affects data migration. Oracle's approach here probably deserves an article of its own but briefly it is based on the idea of editions (the old application and the new one) and using triggers for synchronisation purposes in order to support zero-downtime migrations. Together with the acquisition of GoldenGate, plus its own data integration capabilities, this lets Oracle offer a comprehensive range of options for migration.
To sum up: there's some very good stuff here. There's nothing that you would call radically new (not like i for internet and g for grid) but that's no bad thing. Oracle's emphasis in this release has been on reducing IT costs, which it succeeds in doing in a variety of ways. I expect Oracle users to be very pleased.