Due to an unfortunate series of events I was unable to attend Oracle OpenWorld this year, the year when Oracle 12c was announced to be available after the first part of 2013. I did, however, have contacts at the conference and can report on several of the new features offered in Oracle Release 12c. Let's get started.
Oracle has announced that the VARCHAR2 column will get an increase in size, all the way to 32767, which matches the size for VARCHAR2 variables in PL/SQL that has been available since release 10. This can be a boon to developers who felt constrained by the 4000 character/byte limit imposed in earlier releases. On the down side VARCHAR2 variables declared with a size greater than 4000 will be stored out-of-line, like LOB columns. These changes also apply to RAW and NVARCHAR2 columns.
The next important improvement, in my estimation, is adaptive execution plans, which build upon adaptive cursor sharing and improvements in the bind variable peeking mechanism from 11.2. Thresholds are set to enable this feature; should a threshold be exceeded the plan can change, providing on-the-fly plan improvements. This is one I really want to test.
Statistics are next in my list, starting with dynamic sampling. The sampling levels have increased to 11, which makes the dynamic sampling statistics persistent (I would expect within the context of the current session). Histograms also get a makeover with the added types of hybrid for when 254 buckets is simply not sufficient and top, which leaves the smaller buckets behind (the buckets that comprise the smallest portion of the table data).
Data optimization, or 'heat maps', are a new addition to Oracle Release 12c. The database can now monitor block usage and determine if the block or blocks are hot, medium or dormant to aid DBAs in resolving access bottlenecks. Along with this new feature is the ILM clause to the create/alter table commands; this instructs Oracle to compress (or archive) data after a given period of time, which is good news for those installations using partitioned tables as unmodified partitions (those past their partition key date, for example) can be automatically compressed to conserve space.
In RAC, Transparent Application Failover (TAF), which only affected queries, gets a new wrinkle with transaction guard, which adds the automatic failover capability to certain types of transactions. (I don't have a list, yet, of what those transaction types would be). This is very good news as transactions can be failed over to a running node or restarted on a running node should the node the transaction started on fail; now inserts/updates/deletes can be continued or restarted after a RAC node 'bites the dust', decreasing the chance of lost transactions in a busy enterprise environment.
The really BIG news, however, was the revelation that Oracle Release 12c will offer pluggable databases. This places technology once only available at the operating system level (virtual partitions, logical partitions, containers depending on the UNIX vendor) in the database. Basically a container is created and one or more databases can reside in that container; within the container each database gets its own set of processes and those processes feed a master set of processes attached to the container. Resources can be allocated to the various databases from those allocated to the container in which they reside. Multiple databases can then 'share' a master LGWR process, for example, but have their own dedicated LGWR process within the container. This offers the possibility of making database migrations from one server to another easier and consolodation of multiple databases to a single server less troublesome as resources should be easier to manage.
I know there are more new features, many in the optimizer to improve plans and performance, but Oracle is being guarded in its release of new features, what they do and how they work. I can understand that. I do know that when Oracle 12c is finally released I'll have a copy to 'play' with so I can explore the new frontiers that Oracle has given us. I will then be able to write more detailed articles on these new features, going into some depth as to what they do, how they're configured and how they work.
If you can't tell, I am excited and look forward to being able to get my hands on this new version of Oracle.