Oracle 12c was released in Jul, 2014. It packs a number of new features which bring its up to date with utilising significant improvements in hardware, virtualisation and storage technology.
1. Pluggable Databases Through Database Consolidation
The cloud has driven Oracle to address the problem of Multi-tenancy in Oracle 12c. The core database architecture has introduced Container Databases also called (CBD) and Pluggable Databases (PDB). Memory and processes are now owned by the Container Database. A container holds the metadata where the PDBs hold the user data. You can create upto 253 PDBs including the seed PDB.
In a larger Oracle setup, it is common to see 20 or 30 different instances running in production environment. This can create a maintenance nightmare as all these instances have to be separately
- RAC Enabled
- Backed up and
- Data Guarded.
Pluggable Databases feature allows you to do all this in ONE single instance. This is a significant efficiency improvement for DBAs.
2. Redaction Policy
Data Redaction helps you to mask data. You can setup a Data Redaction policy, for example SSN field in a Employee table can be masked. This is called redaction.
From Sql Develop you can do this by going to the table: Employee->Right click on Security Policy->click on New->click on Redaction Policy->Enter SSN.
When you do a select * from employee, it will show that the SSN is masked.
The new data masking will use a package called DBMS_REDACT. It is the extension to the FGAC and VPD present in earlier versions.
By doing this, whoever needs to view the data will be able to see it where as the other users will not be able to view it.
3. Adaptive Query Optimization and Online Stats Gathering:
With this feature, it helps the optimizer to make runtime adjustments to execution plan which leads to better stats. For statements like CTAS (Create Table As Select) and IAS (Insert As Select), the stats is gathered online so that it is available immediately.
4. Restore a Table easily through RMAN:
Earlier if you had to restore a particular table, you had to do all sorts of things like restoring a tablespace and or do Export and Import. The new restore command in RMAN simplifies this task.
5. Size Limit on Varchar2, NVarchar2, Raw Data Types increased:
The previous limit on these data types was 4K. In 12C, it has been increased to 32,767 bytes. Upto 4K, the data is stored inline. I am sure everyone will be happy with this small and cute enhancement.
6. Inline PL/SQL Functions and Procedures:
The in line feature is extended in Oracle 12C. In addition to Views, we can now have PL/SQL Procedures and Functions as in line constructs. The query can be written as if it is calling a real stored procedure, but however the functions do not actually exist in the database. You will not be able to find them in ALL_OBJECTS. I think this will be a very good feature for the developers to explore as there is no code that needs to be compiled.
7. Generated as Identity/Sequence Replacement:
You can now create a col with ‘generated as identity’ clause. Thats it. Doing this is equivalent to creating a separate sequence and doing a sequence.nextval for each row. This is another handy and a neat feature which will help developer community. This is also called No Sequence Auto Increment Primary Key.
8. Multiple Indexes on a Single Column:
Prior to 12C, a column cant be in more than one index. In 12C, you can include a column in B-tree index as well as a Bit Map index. But, please note that only one index is usable at a given time.
9. Online Migration of Table Partition or Sub Partition:
You can very easily migrate a partition or sub partition from one tablespace to another. Similar to how the online migration was achieved for a non-partitioned table in prior releases, a table partition or sub partition can be moved to another tablespace online or offline. When an ONLINE clause is specified, all DML operations can be performed without any interruption on the partition|sub-partition which is involved in the procedure. In contrast, no DML operations are allowed if the partition|sub-partition is moved offline.
10. In Database Archiving:
This feature enables archiving rows within a table by marking them as inactive. These inactive rows are in the database and can be optimized using compression but are not visible to the application. These records are skipped during FTS (Full Table Scan).
Other Oracle features are:
- Advanced Replication and Streams is deprecated. Oracle Golden Gate (a separate product) can provide this functionality.
- Invisible Columns. You can now have a invisible column in a table. When a column is defined as invisible, the column won’t appear in generic queries