A friend asked me what are the significant new features of Oracle 11g. Here is what I wrote up for him.
This is simple to understand so it may drive a lot of upgrades even if it isn’t so significant. Disk is cheap these days but compression may be virtually free. I believe the compression shrinks the datafiles to 1/4 – 1/3 of their original size. The compression is biased to low cost rather than max size savings so the CPU load is low.
With the performance of today’s CPU’s the cost to compress can be outweighed but the i/o time savings so compression can even be faster. Rumour is that compression will become standard in future releases.
SQL & PL/SQL results cache
The database will now cache results of queries and PL/SQL code blocks in the SGA much as it caches SQL parses now. If the same query is executed on an unchanged result set, the set is returned immediately without execution. The runtime then becomes essentially zero. This is a huge win for apps that frequently re-run the same queries. The SQL cache is free, the database figures it out by itself. The PL/SQL cache requires some minor re-coding in the headers. PL/SQL does take advantage of the SQL cache as well.
The flashback query facility has been extended to use the archive logs, like merging it with Logminer. A flashback query can now be executed as far back as archive logs exist. If you can get 6 months of logs online, you can query your data 6 months ago. A big hit with anyone with auditing needs. Accidentally delete something last week? Load up a week of logs and get it back, rather than crawl through a bunch of backups
Automatic Memory and Parameter Management
The 10g automatic diagnostic facility has been extended to automatically implement its recommendations. You can now largely set and forget the database, let it tune itself. With the new Grid Control, it even auto tunes across instances. 10g already has automatic storage management so we are now finally well on our way to the self managing database. Some DBAs feel threatened by this.
Built-in connection pooling
Connection pooling is now built into the database without relying on the app servers to manage the pools. I don’t quite see how this works, there must be an enhanced protocol to the app server client software. Mostly this just allows the DBA and/or the Grid Control to manage the pools directly.
Partitioning is now enhanced to partition a parent table and its children as a set, even if the children don’t have the parent’s partition key. This will be a big win both for performance and manageability for data warehouses. Oracle is now targetting data warehousing and announced some pre-packaged DW configurations with Sun this week.
It is now possible to capture a workload at the SQL engine level and save it for replay later. Run your big regression test once, capture the load and then it can be replayed later over and over directly from the database. Very useful for testing database patches and upgrades.
Several new security enhancements
- Passwords can now be case-sensitive for PCI compliance.
- Entire tablespaces can be encrypted, which can be simpler to manage than the table and row level encryption in 10g. When an entire tablespace is encrypted, the indexes work on the encrypted data so performance is better. This is also can be more secure as a user without the encryption key cannot even see what objects are in the tablespace.
- DataPump files can be encrypted.
- The database automatically idenfies users default passwords that should be changed.
- The password checking algorithms have been enhanced to be able to enforce more secure passwords.
Not quite a feature but the consensus is that 11gR1 is best first release Oracle has done. So good in fact that many9iR2 shops are going to leapfrog 10gR2 and go straight to 11gR1. 11gR1 most likely has more bugs than 10gR2 but it also has features like rolling upgrades and database replay that make handling those bugs much easier. And saving the cost of a whole upgrade cycle can be worth a few bugs.
I’ll be updating this post as Oracle adds new info at OTN.