Oracle has released its latest version of its database in cloud version. I am discussing some ten important features of its latest version.
Firstly, let me talk about sharding as it is the most important feature in this release.
Sharding is an application-managed scaling technique using many independent databases. It is basically the horizontal partitioning of data across independent databases Data which holds the many partitions or splits into multiple databases are called shards which are distributed as data volumes . Each database holds a subset (either range or hash) of the data. Also each shard has its own CPU, memory, flash & disk and holds a portion of rows from partitioned tables and replicated for high availability and sclability. It is like the "scale-up" vertical partitioning, followed by "scaled-out" horizontal partitioning. Sharding is the dominant approach for scaling massive websites. Shardingis used in custom applications that require extreme scalability and are willing to make a number of tradeoffs to achieve it. In sharding , application code dispatches request to a specific database based on key value and then queries are constructed on shard-key. Here, data is de-normalized to avoid cross-shard operations (no joins).It also has “fault Isolation” feature. The sharding can be illustrated in Figure 1 :-
Figure 1: Pictorial representation DB sharding
The second important feature is the PDB level controls that help to limit I/O and are provided in the new release by MAX_IOPS parameter. We can specify the limit as either I/O requests per second or as Mbps (megabytes of I/O per second). This limit can only be applied to a PDB, not to the multitenant container database (CDB) or a non-CDB.
The third one is the Auto-list partitioning which is an extension of list partitioning. It enables the automatic creation of partitions for new values inserted into the partitioned table. Auto-list partitioning helps DBAs to maintain a list of partitioned tables for a large number of distinct key values that require individual partitions. It also automatically copes with the unplanned partition key values without the need of a DEFAULT.
The fourth is the adaptive query optimization which has brought the biggest change to the optimizer in Oracle Database 12c. It is a set of capabilities that enable the optimizer to make run-time adjustments to execution plans and discover additional information that can lead to better statistics when especially, existing statistics are not sufficient to generate an optimal plan. There are two distinct aspects in Adaptive Query Optimization: adaptive plans, which focuses on improving the execution of a query and adaptive statistics, which uses additional information to improve query execution plans. Below is the illustrative diagram :-
Figure 2: The components that make up the new Adaptive Query Optimization functionality
The fifth is the additional column incorporation while creating indexes . Also indexes will gather extended stats by default when queries are run such as number of times the index was used, last usage time and much more. All the information is recorded in the DBA_INDEX_USAGE data dictionary view.Index monitoring before 12.2 had many problems. In 12.2, Index monitoring is now enabled by default, tracks the usage during run-time (as opposed to parse level).
The new features for 12.2 will definitely take care some of the shortcomings which existed in the earlier versions of Oracle database . I found these features helpful but we need to test/observe how it pans out in the on premise environment which will be released very shortly. In part-II of my blog, I am going to discuss some more features for 12. 2 database.