Performance
General
SQL Quarantine
SQL statements that are terminated by Oracle Database Resource Manager due to their excessive consumption of CPU and I/O resources are automatically quarantined. The execution plans associated with the terminated SQL statements are quarantined to prevent them from being executed again.
This feature protects an Oracle Database from performance degradation by preventing execution of SQL statements that excessively consume CPU and I/O resources.
Related Topics
Database In-Memory Wait on Populate
The DBMS_INMEMORY_ADMIN.POPULATE_WAIT function waits until objects at the specified priority have been populated to the specified percentage.
The new function ensures that the specified In-Memory objects have been populated before allowing application access. For example, a database might contain a number of In-Memory tables with a variety of priority settings. In a restricted session, you can use the POPULATE_WAIT function to ensure that every In-Memory table is completely populated. Afterward, you can disable the restricted session so that the application is guaranteed to query only In-Memory representations of the tables.
Related Topics
Resource Manager Automatically Enabled for Database In-Memory
When INMEMORY_SIZE is greater than 0, Oracle Database Resource Manager is automatically enabled.
The Resource Manager is required to take advantage of In-Memory Dynamic Scans. Because the Resource Manager is automatically enabled when Database In-Memory is enabled, you receive the benefits of enhanced performance and automatic management for CPU resource allocation.
Memoptimized Rowstore Fast Ingest
The fast ingest functionality of Memoptimized Rowstore enables fast data inserts into an Oracle Database from applications, such as Internet of Things (IoT) applications that ingest small, high volume transactions with a minimal amount of transactional overhead. The insert operations that use fast ingest temporarily buffer the data in the large pool before writing it to disk in bulk in a deferred, asynchronous manner.
Using the rich analytical features of Oracle Database, you can now perform data analysis more effectively by easily integrating data from high-frequency data streaming applications with your existing application data.
Related Topics
Automatic Database Diagnostic Monitor (ADDM) Support for Pluggable Databases (PDBs)
You can now use Automatic Database Diagnostic Monitor (ADDM) analysis for pluggable databases (PDBs) in a multitenant environment.
ADDM analysis at a PDB level enables you to tune a PDB effectively for better performance.
Related Topics
Resource Manager Automatically Enabled for Database In-Memory
When INMEMORY_SIZE is greater than 0, Oracle Database Resource Manager is automatically enabled.
The Resource Manager is required to take advantage of In-Memory Dynamic Scans. Because the Resource Manager is automatically enabled when Database In-Memory is enabled, you receive the benefits of enhanced performance and automatic management for CPU resource allocation.
High-Frequency SQL Plan Management Evolve Advisor Task
You can configure the Automatic SPM Evolve Advisor task to run every hour, outside of the standard maintenance window.
By evolving SQL plan baselines more frequently, the optimizer can correct performance regressions more quickly and enforce more optimal SQL execution plans.
Related Topics
Workload Capture and Replay in a PDB
Oracle Real Application Testing was designed to capture and replay multitenant databases at the root multitenant container database (CDB) level. Starting with Oracle Database Release 19c, you can capture and replay the workload from within an individual pluggable database (PDB).
This enhancement enables you to capture and replay workloads at the PDB level. This leads to better testing, less downtime, and more effective and efficient change control.
Related Topics
MAX_IDLE_BLOCKER_TIME Parameter
MAX_IDLE_BLOCKER_TIME sets the number of minutes that a session
holding needed resources can be idle before it is a candidate for termination.
MAX_IDLE_TIME sets limits for all idle sessions, whereas
MAX_IDLE_BLOCKER_TIME sets limits only for idle sessions consuming
resources. MAX_IDLE_TIME can be problematic for a connection pool
because it may continually try to re-create the sessions terminated by this
parameter.
Related Topics