The Oracle Database has recently switched to an annual release model. Oracle Database 19c is only the second release in this new model. So what can you expect from the latest version of the Oracle Database? This presentation explains how Oracle Database 19c is really 12.2.0.3 the terminal release of the 12.2 family and the new features you can find in this release.
2. Safe Harbor Statement
The preceding is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
3. Database Release and Support Timelines up until 19c2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
EXTENDED*
18c
11.2.0.4 EXTENDED
EXTENDED12.1.0.2
12.2.0.1
19c
Paid Extended SupportPremier Waived Extended Support Fee
3
*Oracle Database 19c is the long term support release.
Always check MOS Note 742060.1 for the latest schedule.
Confidential - Oracle Internal Only
7. 12.2.0.312.2.0.212.2.0.1
Mem Optimized Row Store
Sharded RAC
Multitenant Snapshot
Carousel
Active Directory Integration
Private Temporary Tables
T1 T2 T3 T4
Active
Directory
Continual improvements in each release….
8. 12.2.0.312.2.0.212.2.0.1
High speed data ingestion
Active Data Guard DML
Redirect
Automatic Indexing
Hybrid Partition Tables
JSON Improvements
SALESTABLE
Q1 Q2 Q3
Continual improvements in each release….
9. 9
Read Only Oracle HomeInline External Tables
OnlineTableMove
JSON
Real Time Materialized Views
IndexCompression
Auto Generated Sequences
Long Identifiers
Online Tablespace Encryption
Property Graph
SQL Plan Management Enhancements
TopNQueries
Invisible Columns
Longer Varchars
Security Assessment Tool
LiveSQL
IndexUsageStats
Application
Continuity
Data Guard DML Redirect
Polymorphic Table Functions
Load From Object Stores
Unicode 9 Support
Quarantine for SQL Plans
Analytical Views Real-Time Statistics
Approximate Functions
Schema-only Oracle accounts
And Many Many More….
GoldenGate for heterogeneous replication
14. Performance and Scalability
• Continuous Innovation and Improvement
• Row Level Locking, Read Consistency, B-Tree Indexes,
Bitmap Indexes, Materialised Views, Parallel Query,
Advanced Compression, ASM, Results Cache
• Software in Silicon
• In-Memory Column Store
• Exadata provides the best database platform
for all workloads
14
12.1 12.2, 18c, 19c
• 12.2
• In Memory JSON Queries
• In Memory Active Standby
• 18c
• Memory Optimized Row Store
• 19c
• Fast ingest support for IoT type workloads
• Quarantine for SQL Plans
• Automatic Indexing
15. Memoptimized Rowstore : Fast Ingest Support
SGA
BUFFER CACHE
LARGE POOL SHARED POOL
Batched Rows
Batched Rows
Batched Rows
DRAINER PROCESSES
WRITE VERIFICATION API
APPLICATION
SERVER
HIGH VOLUME
INSERTS
IOT : SENSORS,
TELEMETRY,
LOCATION ETC.
• A memory optimised mechanism for
inserting data into the database
• Ideal for light weight IoT transactions
• Rows are cached in memory and
asynchronously drained to disk
• An API allows developers to check on the
durability of their inserts
– Declare table MEMOPTIMIZE FOR WRITE
– Use new hint MEMOPTIMIZE_WRITE
16. 16
SQL BELOW
RESOURCE
THRESHOLD
RESULTS
RETURNED SQL CONSUMING
EXCESSIVE
RESOURCE
SQL PREVENTED
FROM RE-RUNNING
DBA CAN MONITOR AND EXPORT
QUARANTINED SQL OR CHANGE
THE PLAN TO GET IT OUT OF
QUARANTINE
USER EXECUTES
SQL STATEMENT
SQL Quarantine
• SQL execution plans consuming excessive
resources are quarantined
• It’s prevented from executing again
• Improves overall responsiveness of the
system by stopping “rogue” SQL
statements being continually resubmitted
• DBA can monitor quarantined statements
in V$SQL
• Controlled by DBMS_SQLQ or
DBMS_RESOUCE_MANAGER
18. High Availability
18
New in 12.2, 18c, 19c
• 12.2
• Sharding
• Autonomous Health Framework
• 18c
• Sharded RAC
• 19c
• Data Guard DML Redirect
• Sharding now supports multiple PDB
shards in a CDB
• Improvements to Application Continuity
• Comprehensive HA and disaster recovery
functionality
• Real Application Clusters, Active Data Guard, Recovery
Appliance
• Oracle GoldenGate for heterogeneous replication
20. Active Data Guard : DML Redirection
Read Mostly Standby
20
PRIMARY ACTIVE STANDBY
DML1
2 DML IS REDIRECTED TO PRIMARY
3 DML IS APPLIED TO PRIMARY
4 DATA CHANGE IS STREAMED TO STANDBY
5 DATA IS VISIBLE TO
CLIENT
22. Application Development
22
New in 12.2, 18c, 19c
• 12.2
• Long Identifiers
• Case Insensitive Databases
• 18c
• Improved JSON Support
• C, Python, Javascript JSON SODA API
• Private Temporary Tables
• 19c
• SQL JSON Enhancements
• Partial JSON Update support
• Application Express provides a low code platform
for building stunning scalable applications
• SQL Developer IDE & SQLCl provide class leading
functionality for both developers and admins
• Comprehensive Language support
• PL/SQL, SQL , Python, Node.js, PHP, Java, C, .NET, REST
• JSON for schema less development
Confidential - Oracle Internal Only
23. Oracle Database 19c JSON Support
23
• The Oracle Database provides comprehensive support for JSON
– Via Standard DML
– NoSQL APIs (Java, REST, C, Python, JavaScript, PL/SQL)
– Analytics (Dot Notation Access, Parallel Query, QBE, Columnar Access)
– JSON Data Guide to analyze the meta data of JSON Collections
• Improvements in Oracle Database 19c include
– JSON Update operations
– Materialised View Support for JSON_TABLE
– JSON Function Simplification
24. UPDATE purchaseorder_tab
SET po_document =
json_mergepatch(
po_document,
'{"Special Instructions":null}’
);
24
Partial JSON Update Support
• New SQL function
JSON_MERGEPATCH enables
you to update specific portions of a
JSON document without have to
replace the entire document
• Imagine we need to updates all of
the JSON documents in the
po_document column of the
purchaseorder_tab table to
remove the field "Special
Instructions"
25. Data Warehousing and Big Data
• The most advanced analytics engine available
today
• Partitioning, Compression, SQL, Analytical Views, Analytical
SQL, Data Mining
• Easily analyze data held in Hadoop with Big Data
SQL
• Big Data Appliance provides an out of the box
high performance analytics platform
25
New in 12.2, 18c, 19c
• 12.2
• Partitioned External Tables
• Analytical Views
• 18c
• Neural Network Support
• In-Memory for external tables
• Automatic propagation of nologged data to
standby
• 19c
• Partitioned Hybrid Tables
• Real Time Stats Collection
Confidential - Oracle Internal Only
32. EZConnect Improvements
• Simplification of Easy Connect syntax
• Easy Connect adaptor will now accept a list of name value pairs
– For example: SDU, RETRY_COUNT, CONNECT_TIMEOUT, etc.
• Will now enable multiple hosts/ports in the connect string
• Typically used in load-balancing client connections
Oracle Confidential – Internal32
$> sqlplus soe/soe@(DESCRIPTION=
(ADDRESS_LIST=
(LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=tcp)(HOST=salesserver1)(PORT=1522))
(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver2)(PORT=1522))
(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver3)(PORT=1522)))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
$> sqlplus soe/soe@//salesserver1,salesserver2,salesserver3:1522/sales.us.example.com$> sqlplus soe/soe@(DESCRIPTION=
(retry_count=3) (connect_timeout=60)(transport_connect_timeout=30)
(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver1)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
$> sqlplus soe/soe@//salesserver1:1521/sales.us.example.com?connect_timeout=60&
transport_connect_timeout=30&retry_count=3
Confidential - Oracle Internal Only
33. • Free to use
• Includes most EE features
– no RAC, Data Guard, GoldenGate
• No support
• Resource limited:
– 2 CPUs for foreground processes
– 2 GB memory (SGA + PGA)
– 12 GB user data
• 3 PDBs
33
Oracle Database XE
https://www.oracle.com/database/technologies/appdev/xe.html
34. New Install Approaches
• Oracle Database 19c RPM Install
• Yum install of Oracle Instant Clients
• Oracle Read Only Homes
• No click through client software install
• Oracle Docker images
34
35. SQLDeveloper Web
Confidential - Oracle Internal Only
• Browser based IDE for Oracle database
development
• Allows developers to run SQL
statements and build scripts
• Build diagrams using the Data Modeler
• Use Real Time SQL Monitor to analyse
SQL
•
36. Oracle Data REST Services (ORDS)
• ORDS provides REST services for both application
development and administration
• In ORDS 19.1 we now provide REST endpoints to
enable the management and monitoring of the
Oracle Database
• General, Data Dictionary, Monitoring,
Performance, & PDB Lifecycle Management
• Additional end points to be rolled out in future
updates
36Confidential - Oracle Internal Only
37. Database Features – New App
Database feature app
• Part of Oracle Documentation
• Compare releases & interactively
view new features
https://apex.oracle.com/database-features/
37Confidential - Oracle Internal Only
38. livesql.oracle.com is now running Oracle Database 19c
Oracle Database 19c
Free access
Run SQL scripts
Run Tutorials
Share Scripts
38
39. Summary
• Oracle Database 19c is now
production and available on premises
• Oracle Database 19c offers an
extended support window making it
an excellent choice for current and
future upgrade plans
• Focus on long term stability
• Foundation of the Oracle
Autonomous Database
39
This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template.
One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy
To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com
For internal communication, Safe Harbor Statements are not required. However, there is an applicable disclaimer (Exhibit E) that should be used, found in the Oracle Revenue Recognition Policy for Future Product Communications. Copy and paste this link into a web browser, to find out more information.
http://my.oracle.com/site/fin/gfo/GlobalProcesses/RevRec/Policies/cnt2321729.pdf
For all external communications such as press release, roadmaps, PowerPoint presentations, Safe Harbor Statements are required. You can refer to the link mentioned above to find out additional information/disclaimers required depending on your audience.
Bitmap based count distinct SQL Function
New bitvector SQL operators can be used for speeding up COUNT DISTINCT operations within a SQL query. To compute COUNT(DISTINCT) for numeric expressions, you can create a bitvector representation of the expressions and aggregate them before the final bit count. The resulting bitvector can be materialized, such as in a materialized view.
You can construct bitvectors by further grouping on a larger set of GROUP BY keys than targeted queries, such that one materialized view can be used to rewrite multiple GROUP BY queries with COUNT(DISTINCT) expressions, by using ROLLUP.
In most scenarios, bitvector SQL functions combined with materialized views can provide significant performance improvements for queries with COUNT(DISTINCT) operations, which are common in data warehousing environments. The new operators are naturally evaluated in parallel and take advantage of hardware optimized bitmap operations. By creating materialized views with bitvectors at lower-level aggregation levels, the same materialized view can be reused to rewrite queries at higher level of aggregation levels by using ROLLUP.
Memoptimized Rowstore - Fast Ingest
The Memoptimized Rowstore - Fast Ingest feature enables fast data inserts into an Oracle database from applications, such as Internet of Things (IoT), which ingest small, high volume transactions with a minimal amount of transactional overhead. The insert operations that use fast ingest functionality temporarily buffer the data in the large pool before writing it to disk in bulk in a deferred, asynchronous manner.
The fast ingest buffers are allocated from the LARGE_POOL at the time of the first fast ingest write (so not at instance startup).
The default allocation is 2GB. We advise users to set SGA_TARGET and LARGE_POOL_SIZE (default 0 internally determined by oracle) to accommodate this and other large pool requirements (MTS, RMAN etc).
Currently this is not based on cores, and the allocation size does not expand or shrink. MEMOPTIMIZE_POOL_SIZE is for KV lookup only.
The SMCO background process submits tasks to Wxxx slave processes to flush the ingest buffers.
To use ingest:
The table needs to be created with immediate segment creation (unless deferred is false) as well as the MoW attribute. For example,
create table t (c1 number, c2 number) segment creation immediate memoptimize for write;
The users also has to specify a new INSERT hint. For example
insert /*+ memoptimize_write */ into t values(1,1);
The alert log will show the ingest buffers allocated at the time of the first insert.
Quarantine for SQL statements consuming excessive system resources
SQL statements terminated by the Resource Manager due to their excessive consumption of CPU and I/O resources can be automatically quarantined. The quarantined SQL statements are prevented from executing again.
This feature protects an Oracle database from performance degradation by preventing executing the SQL statements that excessively consume CPU and I/O resources.
Capture
Periodically capture the application SQL history into a SQL repository
Includes SQL, plans, bind values, execution statistics, etc.
Identify Candidates
Identify candidate indexes that may benefit the newly captured SQL statements
Creates index candidates as unusable, invisible indexes (metadata only)
Drop indexes obsoleted by newly created indexes (logical merge)
Verify
Ask the optimizer if index candidates will be used for captured SQL statements
Materialize indexes and run SQL to validate that the indexes improve their performance
All verification is done outside application workflow
Decide
If performance is better for all statements, the indexes are marked visible
If performance is worse for all statements, the indexes remain invisible
If performance is worse for some, the indexes are marked visible except for the SQL statements that regressed
Monitor
Index usage is continuously monitored
Automatically created indexes that have not been used in a long time will be dropped
You can switch this service off
It is resource controlled.. So it will use only one OCPU for doing auto indexing
If we take a copy of your data and run on our CPUs then we may run into security and data privacy issues
Active Data Guard DML Redirection
You can run DML operations on Active Data Guard standby databases. This enables you to run read-mostly applications, which occasionally execute DMLs, on the standby database.
DML operations on a standby can be transparently redirected to and run on the primary database. This includes DML statements that are part of PL/SQL blocks. The Active Data Guard session waits until the corresponding changes are shipped to and applied to the Active Data Guard standby. Read consistency is maintained during the DML operation and the standby database on which the DML is run can view its uncommitted changes. However, all the other standby database instances can view these changes only after the transaction is committed.
Note:
Avoid running too may DML operations on Active Data Guard standby databases. Because the operations are actually performed on the primary, too many DMLs may impact the performance of the primary.
Automatic redirection of DML operations to the primary can be configured at the system level or the session level. The session level setting overrides the system level setting.
To configure automatic redirection of DML operations for all standby sessions in an Active Data Guard environment:
Set the ADG_REDIRECT_DML initialization parameter to TRUE.
To configure automatic redirection of DML operations for the current session, use the following command:
ALTER SESSION ENABLE ADG_REDIRECT_DML;
Generation of Unique Sequence Numbers Across Shards
Before Oracle Database 19c, if you needed a unique number across shards you had to manage it yourself. In Oracle Database 19c, Oracle Sharding allows you to generate globally unique sequence numbers across shards for non-primary key columns with unique constraints, or any other usage of a Sequence object which should be logically one object across all shards of a sharded database generating globally unique values, and it is handled by the sharded database.
Customers often need to generate unique IDs for non-primary key columns, for example order_id, when the customer_id is the sharding key. For this case among others, this feature lets you generate unique sequence numbers across shards, while not requiring you to manage the global uniqueness of a given non-primary key column in your application.
Support for Multiple PDB-Shards in the Same CDB
Oracle Sharding with Oracle Database 18c supported one PDB shard in a CDB. In Oracle Database 19c, Oracle Sharding enables you to use more than one PDB in a CDB for shards or shard catalog databases, with certain restrictions. For example, this feature allows a CDB to contain shard PDBs from different sharded databases (SDBs), each with their own separate catalog databases.
Multiple PDBs in a CDB allows you to consolidate several customers and applications that require separate sharded databases, but can share the same system resources for ease of management.
Application Continuity for Java: Declarative Request Demarcation
With the introduction of this feature, when Application Continuity for Java is configured in AUTO mode (that is service FAILOVER_TYPE=AUTO), the JDBC driver injects a beginRequest call, at runtime, after the creation of a JDBC connection with the Replay Datasource.
This feature ensures Zero Downtime for Java applications and third-party connection pools, without the need to make code change.
Active Data Guard DML Redirection
You can run DML operations on Active Data Guard standby databases. This enables you to run read-mostly applications, which occasionally execute DMLs, on the standby database.
DML operations on a standby can be transparently redirected to and run on the primary database. This includes DML statements that are part of PL/SQL blocks. The Active Data Guard session waits until the corresponding changes are shipped to and applied to the Active Data Guard standby. Read consistency is maintained during the DML operation and the standby database on which the DML is run can view its uncommitted changes. However, all the other standby database instances can view these changes only after the transaction is committed.
Note:
Avoid running too may DML operations on Active Data Guard standby databases. Because the operations are actually performed on the primary, too many DMLs may impact the performance of the primary.
Automatic redirection of DML operations to the primary can be configured at the system level or the session level. The session level setting overrides the system level setting.
To configure automatic redirection of DML operations for all standby sessions in an Active Data Guard environment:
Set the ADG_REDIRECT_DML initialization parameter to TRUE.
To configure automatic redirection of DML operations for the current session, use the following command:
ALTER SESSION ENABLE ADG_REDIRECT_DML;
Apex
REST Enabled SQL Support
As opposed to creating Database Links, Oracle Application Express installations that utilize Oracle REST Data Services (ORDS), ORDS 17.3 or later, can now execute any SQL through a REST endpoint. Developers can easily create REST Enabled SQL references by defining a name, the endpoint URL, and authentication information within Shared Components.
Oracle Application Express passes the SQL or PL/SQL query to ORDS over REST, and a self-describing JSON response is returned. The JSON object contains result set meta data, the result data, and pagination details.
REST Enabled SQL references can be used as the basis for all report types, such as interactive reports and classic reports, but not Interactive Grid regions. References can also be used with Calendars, JET Charts, Trees, and PL/SQL Processes.
Oracle Database Links are defined within each SQL statement and work over SQL*Net (or over the internet in cloud environments), and must open a session within the remote database for each SQL or PL/SQL executed. By contrast, REST Enabled SQL references are defined at the Oracle Application Express workspace-level, work with JSON over HTTP(s) which makes them easy to use in cloud environments or over the internet. References can also scale significantly better as ORDS utilizes a connection pool on the remote database.
Related Topics
Oracle® Application Express App Builder User's Guide
Parent topic: Application Express
Web Source Modules
Oracle Application Express introduces a new data source type called "Web Source Modules", a declarative method to define references to external REST APIs and generic JSON data feeds. Web Source Modules store additional metadata about how to parse response data and map it as a virtual table with rows and columns. A module can contain one or many Web Source Operations which are the references to a concrete external web service.
Web Source Modules can also include post-processing SQL which modifies the data before being processed by the Oracle Application Express component. This SQL can be used to apply functions, aggregations, or join with local tables.
Web Source Modules can be used as the basis for all report types, such as interactive reports and classic reports, but not Interactive Grid regions. These modules can also be used with Calendars, JET Charts, Trees, and PL/SQL Processes.
In prior releases of Oracle Application Express, it was possible to define SOAP and REST Web services and then utilize them within limited Oracle Application Express components. Defining such services was very manual, time consuming, and error prone. The new Web Source Modules are highly declarative as they use discovery to understand and define the incoming structure of the web service.
19.1 is now Early Access : Dark Mode, Rest Enabled Web Forms, New Data Loader, Enhanced Jet Support
JSON-Object Mapping
This feature enables the mapping of JSON data to and from SQL object types and collection types.
This feature makes it easier for programs that use SQL objects and collections to interact with JSON-based applications.
Materialized View Support for Queries containing JSON_TABLE
Materialized views query rewrite has been enhanced so that queries with JSON_EXISTS, JSON_VALUE and other functions can utilize a materialized view created over a query containing JSON_TABLE function.
This feature is particularly useful when the JSON documents in a table contain arrays; this type of materialized view provides fast performance for accessing data within those JSON arrays.
Hybrid Partitioned Tables
The Hybrid Partition Tables feature extends Oracle Partitioning by enabling partitions to reside in both Oracle Database segments and in external files and sources. This feature significantly enhances functionality of partitioning for Big Data SQL where large portions of a table can reside in external partitions.
Hybrid Partition Tables enable you to easily integrate internal partitions and external partitions into a single partition table. With this feature, you can also easily move non-active partitions to external files, such as Oracle Data Pump files, for a cheaper storage solution.
Real-Time Statistics
Oracle Database automatically gathers online statistics during conventional DML operations.
Statistics can go stale between execution of DBMS_STATS statistics gathering jobs. By gathering some statistics automatically during DML operations, the database augments the statistics gathered by DBMS_STATS. Fresh statistics enable the optimizer to produce more optimal plans.
NOTE : There is no exchange internal partition to external capability in the initial release. In a range partitioned table (by date) to move a cold partition’s data outside of the database, the customer will need to manually “unload” the data and then create a copy of the table with a new definition of the partition they want held externally. We hope to provide a patch shortly to enable this functionality.
Real-Time Statistics
Oracle Database automatically gathers online statistics during conventional DML operations.
Statistics can go stale between execution of DBMS_STATS statistics gathering jobs. By gathering some statistics automatically during DML operations, the database augments the statistics gathered by DBMS_STATS. Fresh statistics enable the optimizer to produce more optimal plans.
Automatic Database Diagnostic Monitor (ADDM) Support for Pluggable Databases (PDBs)
You can now use ADDM analysis for PDBs in a multitenant environment.
ADDM analysis at a PDB level enables you to tune a PDB effectively for better performance.
Passwords Removed from Oracle Database Accounts
Using the schema only account feature from Oracle Database release 18c, most of the Oracle Database supplied schemas (users) now have their passwords removed to prevent users from authenticating to these accounts.
This enhancement does not affect the sample schemas. Sample schemas are still installed with their default passwords.
For the default schemas that are schema only, administrators can still alter these accounts with passwords if they need to authenticate to the schema, but Oracle recommends changing the schemas back to a schema-only account afterward.
The benefit of this feature is that administrators no longer have to periodically rotate the passwords for these Oracle Database-provided schemas. This feature also reduces the security risk of attackers using default passwords to hack into these accounts.
Database Vault Operations Control for Infrastructure Database Administrators
In a multitenant database, you now can use Oracle Database Vault to block common users (infrastructure DBAs, for example) from accessing local data in pluggable databases (PDBs).
This enhancement prevents common users from accessing local data that resides on a PDB. It enables you to store sensitive data for your business applications and allow operations to manage the database infrastructure without having to access sensitive customer data.
While the features used by EUS met the larger set of requirements, a large group of customers just needed authentication and authorization with Active Directory. The complexity with EUS and ODS was more work and cost than most customers wanted to do to offset the little used Enterprise Domain features.
Centrally Managed Users, to be part of the upcoming Oracle Database Release 18c Enterprise Edition, provides a direct connection to AD without using an intermediate directory service and without the EUS enterprise domain features. AD stores authentication and authorization data that is used by the database to authenticate users. CMU supports passwords, Kerberos and PKI certificates – like EUS does. AD users and groups can map to Oracle schemas as exclusive users or to a shared schema. AD account policies centrally manage their related policies for passwords and lockout.
Livesql is now running database 19c
Live SQL provides free access to an oracle database
Click “Start Coding Now” to get a SQL prompt
Run SQL statements or SQL Scripts
Learn using Tutorials
Access data in sample schemas to learn and test SQL
Share SQL scripts with comments to google searchable SQL scripts
It even works on your cell phone