Thursday, March 1, 2018

18c Database New Features


Today’s post is to discuss few of the new features (Small but nice) of the all new Oracle 18c that I have tested.

1. Annual Release:

Oracle Database 18c, the latest generation of the world's most popular database is now available on Oracle Exadata. It's the first annual release in Oracle's new database software release model. From here on-wards the Oracle Database will be released every year along with quarterly updates. In addition, Oracle Database 18c, despite the naming convention, is actually the next iteration of Oracle Database 12c Release 2 and as a result, it has a lot of the incremental enhancement aimed to improve upon this important release.

2. Read Only Oracle Home (ROOH):

Starting with Oracle Database 18c, you can configure an Oracle home in read-only mode.
In a read-only Oracle home, all the configuration data and log files reside outside of the read-only Oracle home. This feature allows you to use the read-only Oracle home as a software image that can be distributed across multiple servers.

3. Columnar Format Exadata Flash Cache Enhancements:

With the release of Oracle Exadata System Software 18c (18.1.0) the limitation of only supporting Hybrid Columnar Compressed (HCC) formatted data for the Database In-Memory (DBIM) columnar format was removed and now uncompressed tables and OLTP compressed tables can also benefit from the DBIM columnar format. Again, the restriction remains that this only works if the In-Memory column store has been enabled, otherwise the 12.1.2.1.0 format is used, and only for HCC objects.

In addition to Oracle Database In-Memory column store and non-volatile memory support, Oracle Database 18c introduces a Memoptimized Rowstore designed for fast query performance such as Internet of Things (IoT) workloads that require very fast and low latency lookups based on primary key values. A new table level attribute, MEMOPTIMIZE FOR READ, is used to indicate which tables are to be pinned into the buffer cache with this new hash index. Key-value lookups then bypass the SQL execution layer and execute directly in the data access layer via an in-memory hash index. This feature enables clients to perform very low-latency reads from the in-memory buffer, which can significantly increase the throughput of key-value lookups compared to conventional methods.

4. Scalable Sequences:

Applications use Sequences to generate unique numbers. Scalable sequences optimize the sequence generation by using a unique combination of instance number and session number to reduce the impact of Index leaf block contention during massive loads. Scalable sequences feature will result in improved performance of workloads suffering from sequence generation contention. This is perhaps one of the few features that is not automatically enabled as it requires some intervention by DBA’s to ensure this does not change their implemented business logic.

However DBA’s can easily convert existing sequences to the new scalable sequence using the simple "alter sequence sequence_name scale;" command:
15:06:57 [SCOTT][V18100]>> CREATE SEQUENCE supplier_seq MINVALUE 1 MAXVALUE 99999999999 START WITH 1 INCREMENT BY 1 CACHE 20;

Sequence created.

15:07:52 [SCOTT][V18100]>> ALTER SEQUENCE supplier_seq SCALE;

Sequence altered.

15:08:25 [SCOTT][V18100]>> drop SEQUENCE supplier_seq;

Sequence dropped.

15:08:30 [SCOTT][V18100]>> CREATE SEQUENCE supplier_seq MINVALUE 1 MAXVALUE 99999999999 START WITH 1 INCREMENT BY 1 CACHE 20 SCALE;

Sequence created.
5. Converting Normal or High Redundancy Disk Groups to Flex Disk Groups without Restricted Mount

You can convert a conventional disk group (disk group created before Oracle Database18c) to an Oracle ASM flex disk group without using the restrictive mount (MOUNTED RESTRICTED) option.

And Oracle ASM flex disk group will now support for multitenant cloning as well.

6. ALTER SYSTEM CANCEL SQL

Another way to kill/cancel a SQL in a session.
Syntax:
ALTER SYSTEM CANCEL SQL 'SID, SERIAL[, @INST_ID][, SQL_ID]';
e.g. ALTER SYSTEM CANCEL SQL '448, 98175, @1,  7pvt1rp04djuu';
7. PARALLEL_THREADS_PER_CPU

The default value of PARALLEL_THREADS_PER_CPU is finally set to 1.

PARALLEL_THREADS_PER_CPU specifies the default degree of parallelism for the instance and determines the parallel adaptive and load balancing algorithms. The parameter describes the number of parallel execution processes or threads that a CPU can handle during parallel execution.

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

15:40:22 [SYS][V12102]>> show parameter parallel

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fast_start_parallel_rollback         string      LOW
parallel_adaptive_multi_user         boolean     TRUE
parallel_automatic_tuning            boolean     FALSE
parallel_degree_level                integer     100
parallel_degree_limit                string      CPU
parallel_degree_policy               string      MANUAL
parallel_execution_message_size      integer     16384
parallel_force_local                 boolean     FALSE
parallel_instance_group              string
parallel_io_cap_enabled              boolean     FALSE
parallel_max_servers                 integer     160
parallel_min_percent                 integer     0
parallel_min_servers                 integer     32
parallel_min_time_threshold          string      AUTO
parallel_server                      boolean     FALSE
parallel_server_instances            integer     1
parallel_servers_target              integer     64
parallel_threads_per_cpu             integer     2 >>>>>>>>>>>>>>>>>>
recovery_parallelism                 integer     0

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0

SQL> @login
15:44:46 [SYS][V18100]>> show parameter parallel

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
awr_pdb_max_parallel_slaves          integer     10
containers_parallel_degree           integer     65535
fast_start_parallel_rollback         string      LOW
optimizer_ignore_parallel_hints      boolean     FALSE
parallel_adaptive_multi_user         boolean     FALSE
parallel_degree_limit                string      CPU
parallel_degree_policy               string      MANUAL
parallel_execution_message_size      integer     16384
parallel_force_local                 boolean     FALSE
parallel_instance_group              string
parallel_max_servers                 integer     160
parallel_min_degree                  string      1
parallel_min_percent                 integer     0
parallel_min_servers                 integer     16
parallel_min_time_threshold          string      AUTO
parallel_servers_target              integer     64
parallel_threads_per_cpu             integer     1 >>>>>>>>>>>>>>>>>>
recovery_parallelism                 integer     0
8. Remote Direct Memory Access (RDMA):

For users of Exadata and Real Application Clusters (RAC), Oracle Database 18c brings changes that will enable a significant reduction in the amount of undo that needs to be transferred across the interconnect. It achieves this by using RDMA, over the Infiniband connection, to access the undo blocks in the remote instance. This feature combined with a local commit cache significantly improves the throughput of some OLTP workloads when running on top of RAC. This combined with all of the performance optimization that Exadata brings to the table, cements its position as the highest performance Database Engineered System for both OLTP and Data Warehouse Workloads.

Remote Direct Memory Access (RDMA) protocol, which is a technology for memory-to-memory transfer of data over high-speed networks. Specifically, RDMA provides remote data transfer directly to and from memory without CPU intervention. RDMA also provides direct data placement, which eliminates data copies and, therefore, further eliminates CPU intervention. Thus, RDMA relieves not only the host CPU, but also reduces contention for the host memory and I/O buses. To provide this capability, RDMA combines the interconnect I/O technology of InfiniBand on SPARC platforms with the Oracle Solaris operating system.

9. Direct Integration with Microsoft Active Directory:

Beginning with Oracle Database release 18c, version 18.1, Oracle Database introduces centrally managed users to authenticate and authorize users directly with Microsoft Active Directory. With centrally managed users, users accessing the database can be centrally managed to improve an organization's security posture. An enterprise user (a user in Microsoft Active Directory) can be exclusively mapped to a database account, or many enterprise users (in an Microsoft Active Directory group) can be mapped to a shared account in the database. Microsoft Active Directory groups can also be mapped to a database global role, which provides users with additional privileges and roles above what their login account (exclusive or shared) is granted. With centrally managed users, users can be authenticated with passwords, and Kerberos and PKI certificates.

10. New Oracle Spatial features in Oracle Database 18c include distributed transactions, sharding, easier to use web services admin console.

Sharding is a data tier architecture in which data is horizontally partitioned across independent databases.

Each database is hosted on dedicated server with its own local resources - CPU, memory, flash, or disk. Each database in such configuration is called a shard. All of the shards together make up a single logical database, which is referred to as a sharded database (SDB).

Horizontal partitioning involves splitting a database table across shards so that each shard contains the table with the same columns but a different subset of rows. A table split up in this manner is also known as a sharded table.

more to come...

No comments:

Post a Comment