Oracle
AI Database�
Oracle AI
Database New Features
Release
26ai
G43730-01
October
13, 2025
![]()
Oracle
AI Database Oracle AI Database New Features, Release 26ai
G43730-01
Copyright
� 2022, 2025, Oracle and/or its affiliates.
This
software and related documentation are provided under a license agreement
containing restrictions on use and disclosure and are protected by intellectual
property laws. Except as expressly permitted in your license agreement or
allowed by law, you may not use, copy, reproduce, translate, broadcast, modify,
license, transmit, distribute, exhibit, perform, publish, or display any part,
in any form, or by any means. Reverse engineering, disassembly, or
decompilation of this software, unless required by law for interoperability, is
prohibited.
The
information contained herein is subject to change without notice and is not
warranted to be error-free. If you find any errors, please report them to us in
writing.
If this
is software, software documentation, data (as defined in the Federal
Acquisition Regulation), or related documentation that is delivered to the U.S.
Government or anyone licensing it on behalf of the U.S. Government, then the
following notice is applicable:
U.S.
GOVERNMENT END USERS: Oracle programs (including any operating system,
integrated software, any programs embedded, installed, or activated on
delivered hardware, and modifications of such programs) and Oracle computer
documentation or other Oracle data delivered to or accessed by U.S. Government
end users are "commercial computer software," "commercial
computer software documentation," or "limited rights data" pursuant
to the applicable Federal Acquisition Regulation and agency-specific
supplemental regulations. As such, the use, reproduction, duplication, release,
display, disclosure, modification, preparation of derivative works, and/or
adaptation of i) Oracle programs (including any operating system, integrated
software, any programs embedded, installed, or activated on delivered hardware,
and modifications of such programs), ii) Oracle computer documentation and/or
iii) other Oracle data, is subject to the rights and limitations specified in the
license contained in the applicable contract. The terms governing the U.S.
Government's use of Oracle cloud services are defined by the applicable
contract for such services. No other rights are granted to the U.S. Government.
This
software or hardware is developed for general use in a variety of information
management applications. It is not developed or intended for use in any
inherently dangerous applications, including applications that may create a
risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe,
backup, redundancy, and other measures to ensure its safe use. Oracle
Corporation and its affiliates disclaim any liability for any damages caused by
use of this software or hardware in dangerous applications.
Oracle�,
Java, and MySQL are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.
Intel
and Intel Inside are trademarks or registered trademarks of Intel Corporation.
All SPARC trademarks are used under license and are trademarks or registered
trademarks of SPARC International, Inc. AMD, Epyc, and the AMD logo are
trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark of The Open Group.
This
software or hardware and documentation may provide access to or information
about content, products, and services from third parties. Oracle Corporation
and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and
services unless otherwise set forth in an applicable agreement between you and
Oracle. Oracle Corporation and its affiliates will not be responsible for any
loss, costs, or damages incurred due to your access to or use of third-party
content, products, or services, except as set forth in an applicable agreement
between you and Oracle.
Oracle AI Database 26ai
is the next long-term support release of Oracle Database. It includes over 300
new features with a focus on artificial intelligence (AI) and developer
productivity.
Oracle AI Database 26ai is the
next long-term support release of Oracle AI Database. It includes over 300 new
features with a focus on artificial intelligence (AI) and developer
productivity. Features such as AI Vector Search enable you to leverage a new
generation of AI models to generate and store vectors of documents, images,
sound, and so on; index them and quickly look for similarity while
leveraging the existing analytical capabilities of Oracle AI Database. This
combined with the already extensive set of Machine Learning algorithms enables
you to quickly create sophisticated AI-enabled applications. Oracle AI Database
26ai also uses AI to optimize many of the key database functions to make more
accurate estimates on timings and resource costings.
New developer-focused features now
make it simpler to build next-generation applications that use JSON or
relational development approaches or both interchangeably. New microservice and
messaging functionality improves upon Oracle AI Database's extensive support
for this key design methodology. If you need to distribute or shard your
database because of regulatory or performance requirements, Oracle AI Database
26ai adds new RAFT protocol support to make it easier than ever before.
Oracle AI Database 26ai also
includes significant improvements to SQL and PL/SQL, introducing new data types
and language enhancements to create new or improve existing OLTP or analytical
applications. While Oracle AI Database is widely regarded as the most secure
database in the industry, many new capabilities, such as SQL Firewall, enable
you to control exactly what SQL is executed against your database.
To help DBAs, Oracle AI Database
26ai further refines many of the key management tasks, reducing their
complexity and improving their performance as well as introducing new
functionality to simplify tasks, such as reclaiming free space in tablespaces.
Oracle AI Database also adds new performance improvements both at an
infrastructural level (with technologies like True Cache) and at the SQL level,
ensuring some statements will execute many times faster.
Note: For information about desupported
features, see Oracle AI Database Changes, Desupports, and Deprecations.
Oracle AI Vector Search
is designed for Artificial Intelligence (AI) workloads and allows you to query
data based on semantics, rather than keywords.
Data can be transparently
accessed and updated as either JSON documents or relational tables.
Developers benefit from
the strengths of both, which are simpler and more powerful than Object
Relational Mapping (ORM).
Developers can now build
real-time graph analysis applications against operational data directly in the
Oracle AI Database, utilizing its industry leading security, high availability
and performance capabilities.
See Support for the ISO/IEC SQL Property Graph Queries (SQL/PGQ)
Standard.
Alongside Oracle�s
already comprehensive support for microservices, new functionality makes it
simpler to implement cross-service transactions.
See Microservices.
Lock-free column value
reservations allow applications to reserve part of a value in a column without
locking the row; for example, reserve part of a bank account balance or reserve
an item in inventory without locking out all other operations on the bank
account or item.
Kafka applications can
now run directly against the Oracle AI Database with minimal code changes,
leveraging high performance Transaction Event Queues (TxEventQ).
Developers can now create
stored procedures using JavaScript in the database. This functionality also
allows developers to leverage the huge number of JavaScript libraries.
See JavaScript.
Low priority transactions
that block high priority transactions can be automatically aborted. This
feature reduces the administrative burden on the DBA while maintaining high
transaction throughput.
Data use case domains
allow developers to declare the intended usage of data (columns) in a
centralized and light-weight manner. For example, you can declare a column to
hold an email, URL, password, currency, and so on. Applications can use data
use case domains to automatically generate code or verify values.
The following features
are among the many data type and SQL enhancements:
New improvements to
Oracle In-Database Machine Learning algorithms make it simpler to categorize
text and data while offering better performance and flexibility.
New functionality makes
it simpler to create and manage shard replicas. New sharding models also
improve the distribution of data for shard keys with few unique values.
See Using Raft Replication in Oracle Globally Distributed Database.
System privileges can now
be granted at the schema level. This feature simplifies the privilege
management process and as a result, makes it easy to secure databases.
A new role allows
administrators to quickly assign developers only the privileges they need to
design, build, and deploy applications for the Oracle AI Database.
See Use of the DB_DEVELOPER_ROLE
Role for Application Developers.
Included in Oracle AI
Database, SQL Firewall provides real-time protection against common database
attacks by monitoring and blocking unauthorized SQL and SQL injection attacks,
no matter the SQL execution path.
New functionality enables
single sign-on to Oracle AI Database service instances or on-premises Oracle AI
Databases from Microsoft Azure Cloud.
See JDBC Support for OAuth 2.0 Including OCI IAM and Azure AD.
Oracle AI Vector Search
is designed for Artificial Intelligence (AI) workloads and allows you to query
data based on semantics, rather than keywords.
An oracle.sql.VECTOR.SparseBooleanArray interface is added to represent SPARSE BINARY VECTOR data.
SparseBooleanArray
can be passed to setObject
methods of PreparedStatement
to create SPARSE BINARY VECTOR
bind values. SparseBooleanArray
can also be returned by getObject
methods of ResultSet.
This conversion is supported for all VECTOR dimension types, not just BINARY.This feature brings
productivity and performance to Java applications using VECTOR with
a SPARSE BINARY format.
This feature provides a
built-in VECTOR data type that enables vector similarity searches within the
database.
With a built-in VECTOR
data type, you can run AI-powered vector similarity searches within the
database instead of having to move business data to a separate vector database.
Avoiding data movement reduces complexity, improves security, and enables
searches on current data. You also can run far more powerful searches with
Oracle AI Vector Search by combining sophisticated business data searches with
AI vector similarity search using simple, intuitive SQL and the full power of
the converged database - JSON, Graph, Text, Spatial, Relational and Vector -
all within a single query.
AI Vector Search SQL
Execution adds SQL execution support for vector indexes built on vector columns
inside the database. In addition, it provides support for SQL Functions related
to the vector type and allow for row level restriction capabilities in SQL
queries for partitions.
This feature allows you
to more easily build with the vector data type, enabling the rapid development
of AI-driven applications.
Sparse Vectors are
vectors that typically have large number of dimensions, but only a few
dimensions have non-zero values. These vectors are often produced by sparse
encoding models such as SPLADE and BM25. Conceptually, each dimension in a
sparse vector represents a keyword from a specific vocabulary. For a given
document, the non-zero dimension values in the vector correspond to the
keywords (and their variations) that appear in that document.
Sparse vectors, such as
those generated by models like SPLADE and BM25, often outperform dense vectors
from models such as BERT, in terms of keyword sensitivity and effectiveness in
out-of-domain searches. This superior performance is especially valuable in
applications where precise keyword matching is crucial, like in legal or
academic research. Additionally, sparse vectors are often used for Hybrid
Vector Search, where they can be used alongside dense vectors to combine
semantic searches and keyword searches, and provide more relevant search
results.
Just as you can add (+),
subtract (-), or multiply (*) dates, timestamps, intervals, and numbers, you
can now apply these arithmetic operators to vectors. The arithmetic operation
is performed at each dimensional element of the vectors. It's also possible to
calculate the SUM or AVG of a set of vectors.
Arithmetic operations on
vectors allow AI systems to manipulate and combine abstract concepts, which
enhances their ability to understand and process language or data in more
sophisticated ways.
This functionality adds
support to the Optimizer to use indexes built on the new Vector data type
rather than doing full table scans.
The support for vector
indexes being used by the Optimizer allows for efficient computation of vector
queries enabling developers to build the next generation of AI-powered
solutions.
This functionality adds a
new vector type to the PL/SQL type system, along with a set of vector
operations useful for performing similarity searches on sets of vectors.
Support for the new
vector data type in PL/SQL opens up new possibilities for developers to
build robust and efficient AI-driven applications.
BINARY is a new dimension
format that can be used with the VECTOR data type. Each dimension of a
BINARY vector can be represented with a single bit (0 or 1). A BINARY vector
itself is represented as a packed UINT8 array, for example, a single UINT8
value represents 8 dimensions of the BINARY vector. BINARY vectors can be
generated using embedding models provided by Cohere (for example, embed v3),
Hugging Face Sentence Transformers, and so on.
BINARY vectors offer two
key benefits compared to FLOAT32 vectors:
BINARY vectors can
provided reduced accuracy compared to FLOAT32 vectors. But, evaluations on
various datasets have shown that they can still achieve 90% or higher accuracy
of FLOAT32 vectors.
Sparse vectors are now
supported by JDBC and OPD.NET client drivers.
Sparse vectors are
vectors that typically have a large number of dimensions, but only a few of
those dimensions have non-zero values. Because sparse vectors only store
non-zero values, their use can improve efficiency and save storage space.
ODP.NET and JDBC now supports sparse vector types enabling efficient
interaction with sparse vector data through these client drivers.
This feature adds the
necessary components to the JDBC drivers to support the AI Vector Search data
type including SQLType, DatabaseMetaData, ResultSetMetaData and
ParameterMetaData, VectorMetaData, Java to SQL Conversions with
PreparedStatement and CallableStatement, SQL to Java Conversions with
CallableStatement, SQL to Java Conversions with CallableStatment and ResultSet,
and VECTOR Datum class.
JDBC Support for the
Vector data type enables developers to build robust, scalable, and
high-performance Java applications with Artificial Intelligence focus.
Oracle Call Interface
(OCI) now supports Vector data type. Applications that use OCI can now take
advantage of the new Vector data type in the Oracle AI Database.
This feature ensures that
you can leverage the full capabilities of the Oracle AI Database through
OCI-based applications to create the next generation of AI-powered solutions.
PL/SQL supports BINARY
as a new dimension format for the vector type, in line with SQL.
BINARY vectors are frequently used to
represent whether some entity, such as a textual document, does or does not
include certain features, list words, or terms. The advantages of the BINARY
format are two-fold. The storage footprint of vectors can be reduced 32X
compared to the default FLOAT32 vectors and distance computations
on BINARY vectors are up to 40X faster.
Support for BINARY vectors
means that PL/SQL is able to handle a binary vector in the same way that it
supports a vector of any other dimension format.
The new AI Vector Search
features are available in Oracle AI Database 26ai, Release Update 23.6 or
later, provided the COMPATIBLE parameter is set to 23.6.
Regarding the COMPATIBLE
parameter:
COMPATIBLE
parameter set to 23.6.0 by default. COMPATIBLE
parameter to a lower value later.COMPATIBLE
parameter can be 23.0.0 or 23.4.0 or 23.5.0. COMPATIBLE parameter to 23.6.0. COMPATIBLE parameter requires downtime.
It is not automatically done as part of patching. You must choose to
update the database COMPATIBLE
setting.COMPATIBLE
parameter remains as previously set in the source database. COMPATIBLE
parameter to 23.6.0. COMPATIBLE
setting permitted for upgrading to 26ai is 19.0.0. In other words, you
cannot upgrade directly from Oracle Database 12c or 18c to Oracle AI
Database 26ai.With Globally Distributed
Database support for Vector Search, tables containing vectors are automatically
distributed and replicated across a pool of Oracle databases that share no
hardware. Similarity searches are automatically parallelized across shards or
directed to a specific shard if the sharding key is provided.
Globally Distributed
Database AI Vector Search offers several benefits, including greater
scalability by allowing vectors to be distributed across multiple machines,
improved performance by parallelizing vector searches across shards, and improved
data resilience because if one shard goes down, the other shards can continue
to operate. It also allows vector search to be deployed as part of a
distributed database, where a single logical database is distributed over
multiple geographies.
Sparse vectors are now
supported in PL/SQL.
Sparse vectors are
vectors that typically have a large number of dimensions, but only a few of
those dimensions have non-zero values. Because sparse vectors only store
non-zero values, their use can improve efficiency and save storage space.
Native support in PL/SQL allows sparse vectors to be created and used directly
from within PL/SQL.
This functionality
extends the standard JSON scalar types, to include the new Vector data
type. It is fully supported by all Oracle JSON constructs, and a vector
scalar JSON value is convertible to/from a JSON array of numbers.
Embedding vector values
in JSON-type data is important for interoperability between SQL values and JSON
values. For example, a table with a VECTOR column can be exposed in JSON data
without a loss of data-type information allowing developers to create the next
generation of AI applications.
AI vector search supports
custom, user-defined distance metrics. Proprietary and/or domain-specific
distance metrics can be used in addition to the standard built-in distance
metrics.
Vector search operations
are often based on standard distance metrics such as Euclidean, Cosine, and Dot
Product. However, there are situations where domain-specific or proprietary
metrics may be required. User-defined vector distance functions allow users to
create their own custom metrics using JavaScript functions.
Vector data stored
outside the database (on a file system or cloud object store) can be easily
accessed to perform similarity searches using external tables.
Vector embeddings created
outside the database can be loaded quickly and easily using an external table
and standard SQL. It is also possible to run similarity searches on vector
embeddings stored outside the database and seamlessly combine those searches
with data that is stored inside the database.
The Hybrid Vector Index
(HVI) is a new index that allows users to easily index and query their
documents using a combination of full text search and semantic vector search to
achieve higher quality search results.
The Hybrid Vector Index
(HVI) simplifies the process of transforming documents into forms that are
amenable both for vector similarity search and for textual search through a
single index DDL.
The HVI provides a
unified query API that allows users to run textual queries, vector similarity
queries, or hybrid queries that leverage both of these approaches. This
lets users easily customize the search experience and enhances search results.
Vector Indexes are a
class of specialized indexing data structures that are used to efficiently
store and search high-dimensional vector data. A vector index organizes vector
data in a manner such that similar items (where similarity is defined by
distance between two vectors) are grouped together, thus, making the search
process extremely efficient. Unlike traditional database indexes, vector
indexes are commonly used on large datasets to perform approximate similarity
searches that can trade-off between query accuracy and query performance
depending on the application's requirements.
This functionality
enables efficient similarity searches and faster query performance for
AI-driven applications. In addition, vector indexes scalability and support for
high-dimensional data improve analytical insights and can lead to informed
decision-making and a competitive business advantage.
This feature enables
LOCAL indexing for Neighbor Partition Vector Indexes, optimizing search
performance for partitioned tables. This feature conceptually creates a
dedicated vector index for each partition, allowing queries with partition key
filters to search only the relevant index partitions. As a result, vector
searches are more efficient, leading to significantly lower response times when
querying large partitioned datasets.
Large enterprise datasets
are frequently partitioned by relational attributes to optimize performance. By
enabling LOCAL Neighbor Partition Vector Indexes, users benefit from enhanced
scalability and accelerated query performance through partition pruning. This
approach also ensures more efficient data lifecycle management, making it ideal
for handling large-scale enterprise workloads.
The HNSW vector index is
an inmemory resident multi-layered graph index. The time taken to recreate the
inmemory graph on a restart can be improved by having a disk checkpoint image
of the graph. This feature adds the checkpoint format as well as the framework
to take a disk checkpoint and then use it to recreate the inmemory resident
graph structure.
Getting an index access
plan after a restart can take a long time. A higher priority disk checkpoint
based reload execution improves the time taken to get an index access plan
after a restart.
HNSW Index is an
in-memory hierarchical graph index for vector data. In Oracle AI Database 26ai,
Release Update 23.4 and 23.5, DMLs were not allowed on tables that have HNSW
index built on their vector column(s). This feature enables transactions to be
executed on such tables. Moreover, vector search queries that use the HNSW
Index will see transactionally consistent results, based on their read
snapshot. Transactional consistency is guaranteed even on Oracle RAC where the
HNSW Index is duplicated on all instances in the Cluster, DMLs occur on one or
more instances in the Cluster, and search queries can be executed on any
instance in the Cluster.
HNSW Index is the fastest
vector search index that Oracle offers in Oracle AI Database 26ai. Thus,
customers want to use HNSW Index for search queries, while also issuing DML
modifications on relational or vector columns in the underlying table. Since
DMLs may render the in-memory HNSW Index structures stale, special protocols
are added in this project to guarantee transactionally consistent results for
customers.
Hybrid vector search
queries can now have additional WHERE
clause
predicates on columns other than the indexed columns.
Hybrid vector search
combines vector-distance and text-based search in a single query. There are
situations where it is beneficial to add an additional filter predicate on
columns that are not covered by the vector or text-based indexes. The FILTER_BY
field provides a method to supply additional filter predicates using standard
SQL operators.
HNSW Vector Indexes are
now supported on RAC environments through full duplication on all instances of
the cluster that have sufficient memory in the Vector Pool. On Oracle
Autonomous AI Database Serverless deployments, the Vector Pool is autonomously
managed.
All copies of the HNSW index across different RAC instances share the same
ROWID-to-VID mapping table on disk. However, each instance builds its in-memory
neighbor graph independently, and hence, its possible to get different results
for approximate searches depending on which RAC instance is used to serve the
query.
Enterprise customers
often deploy Oracle AI Database in RAC environments. This feature enables
creation of HNSW vector indexes for RAC through full duplication across all
instances of the cluster. Queries directed at any instance of the RAC cluster
can take advantage of HNSW vector index plans resulting in ultra-fast
similarity searches.
Hybrid Vector Indexes
allow document retrieval by integrating full-text search capabilities with
semantic vector search techniques, resulting in higher-quality search results.
This powerful feature has now been extended to support JSON columns, offering
greater flexibility in data indexing and querying.
Creating a Hybrid Vector
Index on a JSON column offers a unified query API that enables users to execute
various types of searches:
This versatile
functionality allows users to:
The quality of an IVF
index may degrade over time if updates to the base table alter the general
vector distribution. It is now possible to reorganize an IVF index while it
remains available for DMLs and Queries.
IVF indexes can become
unbalanced if the source table changes significantly from when the index was
originally created. This can potentially impact the performance and quality of
the index. With IVF Index online reorganization, it is possible to reorganize
the structure of the index while the index remains online and available for
DMLs and queries.
Included Columns in IVF
(Neighbor Partition) vector indexes can now be of type JSON,
BLOB or CLOB.
Included Columns permit
additional non-vector columns in a base table to be stored in an IVF (Neighbor
Partition) vector index. By storing the extra columns in the index, the query
execution no longer needs an additional table access to retrieve the underlying
columns from the base table.
Included columns in
vector indexes facilitate faster searches with attribute filters by
incorporating non-vector columns within a Neighbor Partition Vector Index. This
feature optimizes query execution by removing the need to access these columns
from the base table.
Sophisticated workloads
often combine business data search on relational columns with vector similarity
search. Having included columns in Neighbor Partition Vector Indexes
significantly enhances enterprise search capabilities by integrating attribute
filters with vector-based similarity searches.
This integration
facilitates efficient execution of complex queries by:
Moreover, when the index
includes all columns required for a query as covering columns, data can be
retrieved directly from the index, thereby accelerating query performance.
Partition Maintenance
Operations can now be performed on partitioned tables that have global IVF and
HNSW Indexes. These operations can be applied to tables that have been
partitioned using various methods, including RANGE,
LIST, HASH,
and COMPOSITE.
Partition maintenance
operations such as adding, dropping, merging, and splitting partitions can be
performed on tables with global IVF and HNSW Indexes. One of the key benefits
of partitioning is the added flexibility of being able to perform maintenance
operations on a subset (or partition) of a table in isolation, without
impacting the rows in neighboring partitions. This includes tables with
Vectors.
AI Vector Search was
extended in Oracle AI Database 26ai, Release Update 23.6 to include a new
vector distance metric called Jaccard distance.
This feature allows users
the option to use another distance metric between vectors.
The JACCARD
distance metric is now supported in PL/SQL, which provides a similarity measure
as a value from 0 to 1 between two BINARY vectors.
Jaccard distance is a
common similarity measure for binary vectors. Support for JACCARD
as a new metric in the PL/SQL VECTOR_DISTANCE operator means that PL/SQL code
can make use of the JACCARD distance metric from within
PL/SQL instead of calling out into SQL.
The Open Neural Network
Exchange (ONNX) is an open format to represent machine learning models. It
faciliates the exchange of models between systems and is supported by an ONNX
runtime environment that enables using models for scoring/inference.
You can import
ONNX-format models to Oracle AI Database for the machine learning techniques
classification, regression, clustering, and embeddings.
The models will be
imported as first-class MINING MODEL objects in your schema. Inference can be
done using the family of OML scoring operators, including PREDICTION, CLUSTER,
and VECTOR_EMBEDDING.
You can import and use
third-party ML models, possibly built in other environments or from other
sources, to leverage the database as an ML scoring platform.
Users can invoke these
models from SQL queries using the same scoring operators as native in-database models.
While ONNX format models
can already be imported to OML Services on Oracle Autonomous AI Database
Serverless, you can now use ONNX-format models from Oracle AI Database.
This feature enables importing
and using image transformer models with the in-database ONNX Runtime engine
available in Oracle AI Database 26ai. Image transformer models must be in ONNX
format and include the required image decoding and preprocessing as part of the
ONNX pipeline.
The in-database ONNX
Runtime engine with imported transformers enables you to vectorize text and
image data directly in the database, eliminating the need to provision,
configure, and maintain a separate environment to generate embeddings. Further,
it eliminates the need to move data from the database to a separate environment
and return vectors to the database. This enhancement expands the set of use
cases that you can develop using Oracle AI Database to include image data. This
feature is integrated for use with Oracle AI Vector Search for semantic
similarity search.
The Vector Utility API
provides a SQL function VECTOR_CHUNKS which processes text into pieces
(chunks) in preparation for the generation of embeddings to be used with a
vector index. The API is configurable in terms of size of chunks and rules for
splitting chunks.
While it is possible for
you to create your own chunking algorithms, utilizing this functionality could
save you time and aid in faster development with a pre-packaged SQL function.
DBMS_VECTOR provides a
set of utility functions for processing text for the creation of vector
indexes. These functions may be chained together such that the output from one
function is used as the input for the next.
This feature offers a
straightforward yet very customizable method for you to turn textual content,
like a PDF document or VARCHAR2 database field, into the embeddings necessary
for a vector index. This capability enables you to seamlessly develop with
vectors, facilitating the creation of the next generation of Artificial
Intelligence applications with ease.
Feature extraction
algorithms produce a set of features that represent projections in a lower
dimensional latent space. The output is typically numerical and dense. VECTOR
type representation is the natural choice.
Feature extraction
algorithms represent a principled approach to vectorizing relational data. The
vectorized representation can be used for similarity search.
This feature enables
users to include one or more columns of VECTOR
data type as predictors along with structured enterprise data to in-database
machine learning algorithms.
Vector representations of
unstructured data can be a powerful input to traditional machine learning
algorithms. They enable efficient data processing on text and image data,
helping to speed data-driven decision making. Providing vectors as input to
machine learning models enables handling a broader class of use cases.
The DBMS_HYBRID_VECTOR.SEARCH API now supports a way for users
to specify optional JSON_EXISTS and JSON_TEXTCONTAINS clauses as part of their hybrid search.
Writing complex queries
requires the ability to further constrain hybrid (semantic and textual) search
by JSON_EXISTS and JSON_TEXTCONTAINS when working with complex JSON data. This feature
lets you design sophisticated applications that better satisfy users' search
criteria.
The vector memory pool
can be configured to dynamically grow or shrink to accomodate new or changing
HNSW indexes.
HNSW vector indexes
reside in the Vector Memory Pool in the Database's SGA. Creating an HNSW Index
is dependent upon the pool being adequately sized to accommodate the index, and
subsequent changes to the underlying base-table can result in the size of the
HNSW index changing. With Elastic Vector Memory Management, the pool
automatically resizes to accommodate all HNSW Indexes dynamically.
When using Oracle
Autonomous AI Database services (ADB), the Vector Pool dynamically grows and
shrinks when HNSW indexes are created or dropped respectively.
Because you cannot
explicitly set any SGA-related memory parameters when using Oracle Autonomous
AI Database services, this feature automatically maintains the necessary amount
of Vector Pool memory needed for your HNSW indexes.
Oracle AI Database
provides the most comprehensive platform with both application and data
services to make development and deployment of enterprise applications simpler.
JSON Relational Duality
Views are fully updatable JSON views over relational data. Data is still stored
in relational tables in a highly efficient normalized format but can be
accessed by applications in the form of JSON documents.
Duality views provide you
with game-changing flexibility and simplicity by overcoming the
historical challenges developers have faced when building applications using
relational or document models.
JSON Schema-based
validation is allowed with the SQL condition IS JSON and
with a PL/SQL utility function. A JSON schema is a JSON document that
specifies allowed properties (field names) and the corresponding allowed data
types, and whether they are optional or mandatory.
By default, JSON data is
schemaless, providing flexibility. However, you may want to ensure
that your JSON data contains particular mandatory fixed
structures and typing, besides other optional and flexible
components, which can be done via JSON Schema validation.
The Oracle Text XML
search index syntax and JSON search index syntax are now consistent.
Additionally, the performance of JSON and XML search indexes has been improved.
Using the same syntax for
XML or JSON search indexes and better performance increase productivity.
This feature allows
developers to use Oracle GoldenGate technology to replicate JSON-relational
duality view data as JSON documents, instead of relational tables, from an
Oracle AI Database to a target Oracle or non-Oracle database.
Replication of JSON data
is an important feature for high availability, fail-over, and real-time
migration from a non-Oracle database to Oracle AI Database.
Oracle GoldenGate
Replication to non-Oracle databases such as MongoDB (a document database) or
Redis (a NoSQL key/value store) is simple and performant with the ability to
replicate JSON documents from JSON-relational duality views.
Developers need not write
complex JSON and SQL transformations to shape data for relational and
document-based updates, or pay the cost of reconstructing application objects
on the target database.
You can map duality view
data to hidden fields, absent from the view's documents. A generated
field can use the value of hidden fields.
A document supported by a
duality view can be simpler if it need not have a field for every underlying
column, in particular for columns needed only for calculating other field
values.
Duality views generate
JSON documents containing objects whose fields map to columns of relational
tables. You can add object fields whose values are calculated automatically.
When the database
automatically augments objects by adding calculated fields, such calculation
need not be done by multiple, separate client applications. And field
calculations can refer to stored data that is not exposed in the resulting
objects - a feature similar to redaction.
JSON collection views are
special, read-only database views that expose JSON objects in a JSON-type
column named DATA.
JSON collection views are
conceptually close to JSON-relational duality views, but they have fewer
restrictions because they are read only.
New options in the logical_replication_clause of the CREATE
and ALTER TABLE statements let you control how
JSON changes are logged. Instead of always logging entire JSON documents, you
can now choose to log only the modified portions (PARTIAL JSON) or continue logging full documents (NO PARTIAL JSON).
Partial JSON logging
improves replication efficiency by capturing and transferring only the changed
portions of JSON data. This reduces network and storage overhead, accelerates
replication, and enables better performance on existing hardware�lowering overall
infrastructure costs.
When creating a JSON
search index you can specify the fields to include or exclude from indexing:
path subsetting.
Path subsetting can
reduce the size of a search index and improve its performance.
JSON Collection Tables
can be enabled for logical replication using GoldenGate. Replication is
supported to and from JSON Relational Duality Views as well to and from third-party
products, such as MongoDB.
Replication is a basic
database functionality that works between Oracle databases. It is also used to
facilitate online migration to Oracle AI Database from third-party databases,
such as MongoDB.
You can use field _id
in document subobjects to identify a column that selects document, and use an
identity column as an identifying column.
These additional
possibilities when defining a duality view provide more kinds of documents that
can be supported, and thus allow for more application use cases.
JSON search index and
JSON data guide are enhanced in these ways. The first two represent changes in
the default behavior.
DBMS_JSON
procedures create_view,
get_view_sql,
and add_virtual_columns
resolve name conflicts; that is, the default value of parameter resolveNameConflicts
is TRUE,
not FALSE.
This means that if a resulting field name exists in the same data guide then
it is suffixed with a new sequence number, to make it unique. json_dataguide
is enhanced to detect ISO 8601 date-time string values, using flag option DBMS_JSON.detect_datetime.
When this option is
present, field values that are strings in the ISO 8601 date and time formats
supported by Oracle are represented in a data guide with the value of field type not
as string but as timestamp.
The default changes
improve usability and performance for JSON data guides.
JSON data type can now be
used directly in a WHERE, ORDER BY, and GROUP BY clause.
The broader applicability
of the JSON data type in SQL constructs simplifies your
application development and improves the performance of your
applications by avoiding the need for explicit casts.
You can use a JSON data
type array as the payload for Advanced Queuing (AQ) message-passing functions,
which process an array of messages as a single operation. This applies to the
AQ interfaces for C (Oracle Call Interface), PL/SQL, and Java (JDBC).
Advanced Queuing can
directly use JSON data for its bulk message passing. With JSON being an
increasingly popular format for data exchange, this functionality provides
more flexible application development and improves developer productivity.
When generating JSON data
from relational data, a SQL NULL input value results in a JSON null
value by default.
In Oracle SQL, a SQL NULL
value cannot be distinguished from an empty string value ('').
This means that an empty SQL string input is treated the same as SQL NULL.
This behavior can sometimes confuse users.
When using a SQL/JSON
generation function such as json_object, for NULL
input values of a SQL character data type, such as CLOB
and VARCHAR2, a user can specify that an empty
JSON string ("") be created. The same is true for
function json_scalar.
With this feature,
generating a JSON empty string ("") from an empty SQL string is easy
and efficient. Without this feature, a user needs to use a complex CASE
statement to do the same.
JSON_TRANSFORM is extended to support
right-hand-side path expressions, nested paths, and arithmetic operations. A
SORT operator is supported which allows sorting the elements in an array.
JSON_TRANSFORM is the main SQL operator for
modifying JSON data, both for on-disk updates and transient changes in the SELECT
clause of a query. This enhancement increases update capabilities, such as
arithmetic calculations and operations on nested arrays and
raises developer productivity.
These syntax enhancements
are provided for using GraphQL with JSON-relational duality views:
@cast,
@object,
and @array
@generated,
@link,
and @where
WHERE) These enhancements allow
more flexible use of GraphQL when creating a duality view.
JSON collections are
special tables or views that store (or represent) only JSON documents in a
document-store-compatible format, such as the Oracle AI Database API for
MongoDB. JSON collections are integrated into the database and fully operable
with SQL, from creation to manipulation and query processing. For example,
it is possible to do a simple INSERT AS SELECT into a JSON collection
table.
JSON collection tables
complement JSON Duality Views, the marquee JSON collection views that provide
the benefits of relational storage and JSON document processing with a single
database structure.
Native JSON collections
simplify working with JSON data stored in collections within the Oracle AI
Database ecosystem. For example, with collections, you easily analyze your JSON
documents with SQL while concurrently using those operationally with
document-centric APIs, such as the Oracle AI Database API for MongoDB.
Format FORMAT_SCHEMA produces a data guide that you can use to validate
JSON documents.
You can produce JSON data
guide documents that you can use to validate JSON documents.
You can specify the
maximum size in bytes for a JSON-type column.
For type modifier ARRAY,
you can specify:
Specifying a size limit
for a JSON-type column and constraining array size, element type, and storage
order can lead to more efficient handling of the stored JSON data.
You can limit the kinds
of values stored in a JSON-type column to objects, arrays,
scalars, or a combination, by adding modifier keywords OBJECT,
ARRAY, and SCALAR to
the column specification when creating a table. For example, DATA JSON (OBJECT) ensures that only JSON objects
can be stored.
Using modifier OBJECT alone
ensures that the column data is compatible with documents in Oracle JSON
collections and in typical document databases.
Support for access and
direct-loading of JSON-type columns is provided for external tables. JSON data
type is supported as a column type in the external table
definition. Newline-delimited and JSON-array file options are
supported, which facilitates importing JSON data from an external table.
This feature makes it
easier to load data into a JSON-type columns.
The hints configuration
field for duality views can map primary-key columns to subobject fields, map
SQL data types to fields, and disable sharing of data underlying a subobject.
You can obtain more
control over the mapping between the documents supported by duality view and
their underlying relational data:
This feature enhances the
ability of developers to leverage JSON documents for data access using the
highly efficient relational data storage model, without compromising simplicity
or efficiency.
DBMS_JSON_DUALITY.IMPORT_ALL is a PL/SQL procedure that is
designed to import multiple document collections into a JSON-relational duality
view.
While the existing DBMS_JSON_DUALITY.IMPORT procedure is limited to importing
a single collection, the ability to import multiple collections in a single
PL/SQL call simplifies the process and helps prevent constraint violation
errors. The IMPORT_ALL procedure enables the efficient
import of multiple document collections into a JSON-relational duality view.
This feature allows the
JSON to Duality Migrator to use user provided JSON schemas for relational
schema inference. The JSON schemas can be provided in isolation or in
conjunction with data for more accurate schema inference.
This feature makes the
JSON to Duality Migrator more accessible to customers who may not have a large
amount of JSON data for the Migrator to analyze or who do not want to send
confidential data to the Migrator. As long as they have a JSON schema for each
collection, they can still use the Migrator.
The PL/SQL functions DBMS_JSON_DUALITY.VALIDATE_SCHEMA_REPORT and VALIDATE_IMPORT_REPORT are provided to validate the
relational schema and data that are created and imported by the JSON-To-Duality
Migrator.
There is a growing need
for functions that would validate the recommended relational schema. To address
these needs, the validation APIs have been developed that:
Given an existing set of
JSON collections as input, the JSON-To-Duality Converter creates a set of
JSON-relational duality views, based on normalized relational schemas, that
support the same document collections. This creation needs no user supervision,
but users can override schema recommendations.
This feature provides one
part of the JSON-to-Duality Migrator, which is a set of PL/SQL procedures to
move document-centric applications and their JSON documents from a document
database to duality views in Oracle AI Database.
This feature imports
application data from a set of JSON collections into JSON-relational duality
views that have been created using the JSON-to-Duality Converter.
This feature provides one
part of the JSON-to-Duality Migrator, which is a set of PL/SQL procedures to
move document-centric applications and their JSON documents from a document
database to duality views in Oracle AI Database.
The PL/SQL JSON
constructor is enhanced to accept an instance of a corresponding PL/SQL
aggregate type, returning a JSON object or array type populated with the
aggregate type data.
The PL/SQL JSON_VALUE
operator is enhanced so that its returning clause can accept a type name
that defines the type of the instance that the operator is to return.
JSON constructor support
for aggregate data types streamlines data interchange between PL/SQL
applications and languages that support JSON.
A subquery can be
used as an argument to SQL/JSON function JSON_ARRAY to define the
array elements. This functionality is part of the SQL/JSON standard.
This feature increases
your developer productivity and higher interoperability with other
SQL/JSON standard-compliant solutions.
You can use the
initialization parameter JSON_BEHAVIOR to change the default behavior of
SQL/JSON operators within a database session.
You can change the
default return data type, default type-compatibility, and default error
behavior during a session for applicable SQL/JSON operators.
This lets you enforce
consistent session-level JSON processing behavior, reducing the need for
explicit overriding of default behaviors within individual SQL statements.
A new parameter JSON_EXPRESSION_CHECK allows to enable/disable a JSON
query check. The values are on and off.
The default is off. For now, this parameter is
limited to JSON-relational duality views. An error is raised if a JSON path
expression on a duality view does not match to an underlying column, for
example if the path expression has a typo. The error is raised during query
compilations.
This simplifies working
with JSON-relational duality views, as incorrect JSON path expressions do not
need to be debugged at runtime but instead are flagged at query compilation
time (by raising an error).
SQL operator JSON_ID
generates a unique document-identifier value, for unique access to JSON
documents in a collection. The argument to JSON_ID
determines whether the value is a 12-byte OID
or a 16-byte UUID. In Oracle JSON collections, JSON_ID
is used to create (automatically or explicitly) the values for
document-identifier field _id.
JSON_ID simplifies the generation of ID
values to uniquely identify JSON documents.
Oracle SQL function JSON_TRANSFORM operators ADD_SET and REMOVE_SET
work with JSON arrays as if they are sets;
that is, as if their elements are unordered and unique (no duplicates).
ADD_SET
adds a value to an array only if the value is not already an element. REMOVE_SET
removes all occurrences of a given value from an array. Application code can more
concisely update arrays that it uses as sets.
Wherever a SQL function
for JSON returns a LOB value, the returning clause can specify that the LOB be
value-based. By default, a LOB reference is returned instead. For example:
JSON_SERIALIZE (data returning CLOB
VALUE)
Value-based LOBs are are
easier to use because they do not need to be freed explicitly. The database
fully manages the lifecycle of value-based LOBs and frees them when
appropriate.
New dictionary views *_JSON_INDEXES and *_TABLE_VIRTUAL_COLUMNS have been added.
These new views provide
better insight into the database objects that have been created to work with
JSON data.
The SQL function JSON_SERIALIZE has an optional keyword ORDERED,
which reorders the key-value pairs alphabetically (ascending only). It can be
combined with optional keywords PRETTY and ASCII.
Ordering the result of
serialization makes it easier for both tools and humans to compare values.
To avoid sending invalid
data to the database, an application can often precheck (validate) it. PL/SQL
function DBMS_JSON_SCHEMA.describe provides JSON schemas that apps
can use to perform validation equivalent to that performed by database
column-level check constraints, and it records constraints that have no
equivalent JSON schema.
Applications can also
check which columns are precheckable with a JSON schema by consulting static
dictionary views ALL_CONSTRAINTS, DBA_CONSTRAINTS, and USER_CONSTRAINTS.
When you create or alter
a table you can use keyword PRECHECK to determine whether column check
constraints can be prechecked outside the database. If no equivalent JSON
schema exists for a given PRECHECK column check constraint then an
error is raised.
Early detection of
invalid data makes applications more resilient and reduces potential system
downtime. All applications have access to the same information about whether
data for a given column is precheckable, and if so what JSON schema validates
it.
JSON path expressions
with predicates can be used in JSON_VALUE and JSON_QUERY.
The functionality is part of the SQL/JSON standard.
Applying JSON path
expressions more widely for querying JSON data boosts
your developer's productivity and simplifies code development.
This feature allows you
to return a score for your JSON_TEXTCONTAINS() queries by using the SCORE()
operator.
You can also order the
results by the score.
JSON_TEXTCONTAINS
function gains a new parameter for use with the SCORE() function allowing for
an improved development experience.
Various extensions are
made to the SODA API:
These extensions increase
the usability and capabilities of SODA in general, thus improving developer
productivity.
The new PL/SQL
procedure, DBMS_JSON.json_type_convertible_check, checks whether existing data
stored as JSON text can be migrated to JSON data type. There are several
alternative ways to migrate the data after this check succeeds.
Leveraging the binary
JSON data type format provides the best performance for processing JSON data.
Providing a simple and easy way to ensure existing data can be transformed
successfully to binary JSON format helps you to adopt the preferred storage
format for JSON data.
When creating a
JSON-relational duality view you can use simple WHERE
clauses to limit the rows from which to generate JSON data from underlying
tables. As one kind of use case, you can create multiple duality views, whose
documents contain different data depending on the values in a discriminating
column. For example, with the same underlying table you can define views for
data from different countries, using a WHERE
clause that selects only table rows whose country-code column has a given value
(for example, FR for France). The JSON documents
supported by a country view reflect this requirement, and the requirement is
enforced for updates.
WHERE clauses in view definitions allow
fine-grained control of the data that is to be included in a JSON document
supported by a duality view.
Schema annotations enable
you to store and retrieve metadata about database objects. These are name-value
pairs or simply a name. These are free-form text fields applications can use to
customize business logic or user interfaces.
Annotations help you use database
objects in the same way across all applications. This simplifies development
and improves data quality.
Join the target table in UPDATE
and DELETE statements to other tables using
the FROM clause. These other tables can
limit the rows changed or be the source of new values.
Direct joins make it
easier to write SQL to change and delete data.
DDL object creation,
modification, and deletion now support the IF EXISTS
and IF NOT EXISTS syntax modifiers. This enables
you to control whether an error should be raised if a given object exists or
does not exist.
The IF [NOT] EXISTS syntax can simplify error handling in scripts and by
applications.
The DB_DEVELOPER_ROLE role provides an application developer with all the
necessary privileges to design, implement, debug, and deploy applications on
Oracle databases.
By using this role,
administrators no longer have to guess which privileges may be necessary for
application development.
You can pass INTERVAL
data types to the SUM and AVG
aggregate and analytic functions.
This enhancement makes it
easier for developers to calculate totals and averages over INTERVAL
values.
PL/SQL functions within
SQL statements are automatically converted (transpiled) into SQL expressions
whenever possible.
Transpiling PL/SQL
functions into SQL statements can speed up overall execution time.
Annotations enable you to
store and retrieve metadata about database objects. These are either name-value
pairs or only a name. These are free-form text fields that applications can use
to customize business logic or user interfaces.
Annotations help you to
use database objects in the same way, across all applications. This simplifies
development and improves data quality.
You can define columns as
DEFAULT ON NULL for update operations, which was
previously only possible for insert operations. Columns specified as DEFAULT ON NULL are automatically updated to the specific default
value when an update operation tries to update a value to NULL.
This feature simplifies
application development and removes your need for complex application code or
database triggers to achieve the desired behavior. Development productivity is
increased and code becomes less error-prone.
The SQL*Plus DESCRIBE
command can now display annotation information for columns that have associated
annotations available.
Annotations help you to
use database objects in the same way across all applications. This simplifies
development and improves data quality.
Provide access to the
Data Use Case Domain metadata (domain name and domain schema) for the database
columns described in OCCI (Oracle C++ Call Interface) applications.
Database adds Data Use
Case Domains to columns and the column metadata need to expose the same in all
the data access drivers.
A data use case domain is
a dictionary object that belongs to a schema and encapsulates a set of optional
properties and constraints for common values, such as credit card numbers or
email addresses. After you define a use case domain, you can define table
columns to be associated with that domain, thereby explicitly applying the
domain's optional properties and constraints to those columns.
With use case domains,
you can define how you intend to use data centrally. They make it easier to
ensure you handle values consistently across applications and improve data
quality.
Addition (+), subtraction
(-), and multiplication (*) can now be applied to vectors in PL/SQL. The
arithmetic operation is performed at each dimensional element of the vectors.
Arithmetic operations on
vectors allow AI systems to manipulate and combine abstract concepts, enhancing
their ability to understand and process language or data in more sophisticated
ways. PL/SQL support of vector arithmetic provides developers a means to apply
these operations within PL/SQL blocks and functions without calling out to SQL.
Dynamic statistics
support has been enhanced for PL/SQL functions used in SQL WHERE
clauses and TABLE functions. Long-running PL/SQL
functions can increase SQL parse times if they are used with dynamic
statistics, so global-level and fine-grained controls are provided to configure
which functions should be included or excluded.
Cardinality can be
difficult to estimate when optimizing SQL statements containing PL/SQL
functions. This can lead to poor SQL execution plans and poor SQL performance.
The ability to control and use dynamic statistics with PL/SQL functions enables
the optimizer to find better execution plans, which leads to improved overall
database performance.
The Oracle Call Interface
(OCI) OCIError() function has been enhanced to
optionally include an Oracle URL with error messages. The URL page has
additional information about the Oracle error.
This feature allows users
to access information about the cause of the error and the actions that can be
taken.
The CASE
statement is extended in PL/SQL to be consistent with the updated
definitions of CASE expressions and CASE
statements in the SQL:2003 Standard [ISO03a, ISO03b].
Dangling predicates allow
tests other than equality to be performed in simple CASE
operations. Multiple choices in WHEN clauses allow CASE
operations to be written with less duplicated code.
In SQL queries with
complex SELECT lists that contain aggregation functions, the new GROUP BY ALL
clause eliminates the need to put all non-aggregated columns into the GROUP BY
clause. Instead, the new ALL keyword indicates that the results should be
automatically grouped by all non-aggregated columns.
Not having to repeat the
non-aggregated columns in the GROUP BY clause, makes writing SQL queries
quicker and less error prone. Users can use the GROUP BY ALL functionality to
either quickly prototype their SQL query or for quick ad-hoc queries.
You can now use column
alias or SELECT item position in GROUP BY,
GROUP BY CUBE, GROUP BY ROLLUP, and GROUP
BY GROUPING SETS
clauses. Additionally, the HAVING clause supports column aliases.
These enhancements
make it easier to write GROUP
BY and HAVING
clauses. It can make SQL queries much more readable and maintainable while
providing better SQL code portability.
UUID is a 128-bit universal
unique identifier popularly used by applications to generate an unpredictable,
random value which can be used as a primary key in a table, a transaction ID,
or any form of unique identifier. In Oracle AI Database 26ai, SQL function
UUID() generates a version 4 variant 1 UUID in the database per the UUID RFC
9562.
The UUID generation and
manipulation functions offer a compliant way of generating a random, unique,
and unpredictable identifier that can be used to populate a primary key column
in a database table, to uniquely identify a transaction ID (for example, for
the Sessionless Transactions feature in Oracle AI Database 26ai), and many
other purposes.
Modern applications
expect to be able to generate a UUID that is unpredictable and random. All
major databases and data management systems support some form of UUID
generation and manipulation.
The current Oracle SQL
operator SYS_GUID() always produces a predictable
sequence of unique identifies which is not optimal.
This feature enhances
common TNS error messages by providing more information, such as cause of the
error and the corresponding action to troubleshoot it.
Having a better
description of errors improves diagnosability.
This enhancement allows
query rewrite to work even when user bind variables are present in the filter
predicates. By enabling bind peeking during containment checks, queries that
previously required hard parsing can now leverage materialized views more
efficiently. This also improves cursor sharing for rewritten queries, reducing
parsing overhead and improving performance in systems that rely heavily on bind
variables.
This feature removes key
limitations in query rewrite and cursor sharing when using bind variables. It
enables broader use of materialized views for queries with bind-based filters
and allows rewritten queries to share cursors, reducing hard parses and improving
overall query performance and response time.
Oracle AI Database
features a native SQL BOOLEAN data type. The server-side
JavaScript engine fully supports the data type on all interfaces.
When using JavaScript to
write stored code in Oracle, this feature allows you to take full advantage of
the capabilities offered by the new SQL BOOLEAN
data type.
Oracle AI Database adds a
new INSERT INTO SET clause, which is an easier,
self-documenting syntax for INSERT
INTO
statements. The SET clause for the INSERT INTO statement is the same as the already existing SET
clause for UPDATE statements. It also adds a BY NAME
clause when inserting a the results of a subquery. This matches source and
target columns by their name rather than their position in the INSERT
and SELECT lists.
The benefit of the SET clause
is that it is immediately clear which value in the INSERT INTO statement belongs to which column, which is not
obvious and cumbersome to find out for current INSERT INTO statements with hundreds of columns. Similarly
matching the order of hundreds of columns in INSERT and
SELECT lists when loading a subquery is
awkward. Using the BY NAME clause allows these lists to be
in different orders, simplifying the process of writing the statement.
Oracle C++ Call Interface
(OCCI) now supports querying and binding of the new SQL BOOLEAN
data type.
Using the SQL BOOLEAN
data type enables applications to represent state more clearly.
Oracle client drivers
support fetching and binding the new BOOLEAN
database column.
Applications can use
the native database BOOLEAN column data type with a native
driver BOOLEAN data type. This enhancement makes
working with BOOLEAN data types easier for developers.
You can now run SELECT
expression-only queries without a FROM clause.
This new feature improves
SQL code portability and ease of use for developers.
Oracle AI Database now
supports the ISO SQL standard-compliant BOOLEAN
data type. This enables you to store TRUE and FALSE
values in tables and use BOOLEAN expressions in SQL statements.
The BOOLEAN
data type standardizes the storage of Yes and No values
and makes it easier to migrate to Oracle AI Database.
Time bucketing is a
common operation when processing time series or event streaming data where a
series of data points within an arbitrarily defined time window need to be
mapped to a specific fixed time interval (bucket) for aggregated analysis.
With the new SQL operator
TIME_BUCKET, Oracle provides native and
performant support for time bucketing of time-based data for DATETIMES.
Providing a native SQL
operator for common fixed-time interval bucketing for time series data
significantly simplifies application development and data analysis of such
information. In addition to simpler and less error prone code, the native
operator increases the performance of time series analysis.
The RETURNING INTO clause for INSERT, UPDATE,
DELETE and MERGE
statements are enhanced to report old and new values affected by the respective
statement. This allows developers to use the same logic for each of these DML
types to obtain values pre- and post-statement execution. Old and new values
are valid only for UPDATE statements. INSERT
statements do not report old values and DELETE
statements do not report new values. MERGE can return both old and new
values.
The ability to obtain old
and new values affected by INSERT, UPDATE,
DELETE and MERGE
statements, as part of the SQL command�s execution, offers developers a uniform
approach to reading these values and reduces the amount of work the database
must perform.
SQL*Plus supports the new
SQL BOOLEAN data type in SQL statements and
the DESCRIBE command. Enhancements to the COLUMN
and VARIABLE command syntax have also been
made.
SQL*Plus scripts can take
advantage of the new SQL BOOLEAN data type for easy development.
The QUALIFY
clause filters the results of analytic functions in a SELECT
statement. The relationship between the QUALIFY
clause and an analytic function is analogous to the relationship between the HAVING
and GROUP BY clauses.
Without the QUALIFY
clause, the only way to filter on the output of an analytic function is by
nesting the query and applying a filter in the parent query, which is more
verbose, adds additional maintenance overhead and may obscure the query's
intent to the reader. The QUALIFY clause overcomes all these
caveats.
The database's SQL engine
now supports a VALUES clause for many types of
statements. This new clause allows for materializing rows of data on the fly by
specifying them using the new syntax without relying on existing tables. Oracle
supports the VALUES clause for the SELECT,
INSERT, and MERGE
statements.
The introduction of the
new VALUES clause allows developers to write
less code for ad-hoc SQL commands, leading to better readability with less
effort.
Oracle AI Database now
has native support for property graph data structures and graph queries.
Property graphs provide
an intuitive way to find direct or indirect dependencies in data elements and
extract insights from these relationships. The enterprise-grade
manageability, security features, and performance features of Oracle AI
Database are extended to property graphs. Developers can easily build graph
applications using existing tools, languages, and development frameworks. They
can use graphs in conjunction with transactional data, JSON, Spatial, and other
data types.
The ISO SQL standard has
been extended to include comprehensive support for property graph queries and
creating property graphs in SQL. Oracle is among the first commercial software
products to support this standard.
Developers can easily
build graph applications with SQL using existing SQL development tools and
frameworks. Support of the ISO SQL standard allows for greater code
portability and reduces the risk of application lock-in.
Oracle AI Database now
has native support for property graph data structures and graph queries.
Property graphs provide
an intuitive way to find direct or indirect dependencies in data elements and
extract insights from these relationships. The enterprise-grade
manageability, security features, and performance features of Oracle AI
Database are extended to property graphs. Developers can easily build graph
applications using existing tools, languages, and development frameworks. They
can use graphs in conjunction with transactional data, JSON, Spatial, and other
data types.
The ISO SQL standard has
been extended to include comprehensive support for property graph queries and
creating property graphs in SQL. Oracle is among the first commercial software
products to support this standard.
Developers can easily
build graph applications with SQL using existing SQL development tools and
frameworks. Support of the ISO SQL standard allows for greater code
portability and reduces the risk of application lock-in.
SQL/PGQ queries can be
executed on graphs represented as a JSON column (SQL/PGQ is the ISO standard
for property graphs).
Developers can store a
graph as a schema-less object in the database. Vertices and edges in a graph
can have varying number and types of properties.
Developers can visualize
graphs and graph query results that use the native property graph object in
Oracle AI Database.
Developers can query,
analyze, and visualize graphs created by SQL DDL statements by using built-in
advanced tools in Oracle AI Database. Existing applications can use this native
representation of graphs without changing tools and the user interface.
Oracle Graph algorithms
in Graph Server can be used with RDF graphs.
You can now benefit from
popular graph analytics algorithms, such as PageRank and Community Detection,
potentially enhancing strategic decision-making and enabling deeper insights.
Transactional Event
Queues (TxEventQ) now support the KafkaProducer and KafkaConsumer
classes from Apache Kafka.
Oracle AI Database can
now be used as a source or target for applications using the Kafka APIs.
ODP.NET Core and managed
ODP.NET now support Advanced Queuing (AQ) and Transactional Event Queues
(TxEventQ) application programming interfaces (APIs) that can be used in modern
applications, such as microservices. TxEventQ's highly optimized and
partitioned implementation leverages the functions of Oracle AI Database so
that producers and consumers can exchange messages at high throughput, by
storing messages persistently, and propagate messages between queues on
different databases. TxEventQ are a high performance partitioned implementation
with multiple event streams per queue, while AQ is a disk-based implementation
for simpler workflow use cases.
ODP.NET developers can
leverage the same APIs no matter if they use TxEventQ or AQ. The APIs provide
access to a robust and feature-rich message queuing systems integrated with
Oracle AI Database. It can be used with web, mobile, IoT, and other data-driven
and event-driven applications to stream events or communicate with each other
as part of a workflow.
Prometheus/Grafana for
Oracle will provide database metrics for developers running in a
Kubernetes/Docker (K8S) environment. Database metrics are stored in Prometheus,
a time-series database and metrics tailored for developers are displayed using
Grafana dashboards. A database metrics exporter aids the metrics exports from
database views into Prometheus time series database.
Developers of modern
applications like microservices use observability at the app tier and often
overlook the data tier. Data-driven applications don't get a full picture of
the execution and performance of the application. Traditional database metrics
are seen through AWR reports and Enterprise Manager, which are more targeted to
the DBAs and less to the developers. For developers and architects, Prometheus
and Grafana have become the tools for configuring metrics dashboards, setting
alerts and taking remedial action. Developers can now tie in the app-tier
metrics, Kubernetes container metrics, and Oracle AI Database metrics on behalf
of the application together in a single dashboard. In addition to metrics, logs
and tracing is also enabled to truly get unified observability on a single pane
of glass.
Oracle AI Database 26ai
introduces support in new languages for Transactional Event Queues
(TxEventQ). TxEventQ can now be used in Python and with REST APIs (REST
APIs implemented to be like Kafka's Confluent REST APIs). TxEventQ already has
support for PL/SQL, C/C++, and Java using JMS or JDBC.
This feature increases
developer productivity by allowing REST APIs applications to take
advantage of Transactional Event Queues (TxEventQ) to handle application
and data events. With increasing popularity of Python for Machine Learning
applications, TxEventQ in the Oracle AI Database can now be part of the Machine
Learning application data and events infrastructure.
Oracle Saga APIs are
implemented in the database and provide a framework to implement
transactional semantics for microservices built with Oracle AI Database. The
orchestrator Saga framework provides a way to maintain atomic data consistency
across microservices.
Sagas are concurrent and
execute local transactions in each participant database making it more
efficient than distributed ACID transactions, thereby simplifying application
code and increasing developer productivity.
Queues are used widely to
send and receive events and messages between applications, increasingly being
built as microservices. Transactional Event Queues (TxEventQ) are queues built
into Oracle AI Database. Queue propagation allows multiple databases to act as
producers and consumers of events and messages. Producer applications can send
events in queues in one database, set up queue propagation to a remote
database, and Consumer applications can consume events in queues in the remote
database.
Queue propagation is used
to consolidate critical events and data from remote locations to a central
location for consolidated processing. Propagation is used to operate
Transactional Event Queues (TxEventQ) as a reliable and secure Event Mesh, with
multiple queues across multiple databases participating to send events and
messages across the enterprise reliably and to remote subscribers with
permissions. TxEventQ supports exactly-once messaging which makes it simpler to
build and test applications.
.NET Metrics are
application numerical measurements collected at regular time intervals for the
purposes of monitoring and alerting about application health. In an ODP.NET
setting, metrics can monitor connection statistics, such as number of ODP.NET
hard connections to the database, number of active connections, or number of
free connections.
ODP.NET Core and managed
ODP.NET support .NET Metrics. ODP.NET metrics can be published to and analyzed
by the rich and expansive toolsets integrated with OpenTelemetry and .NET
Metrics, such as Grafana and Prometheus.
The DBMS_DEVELOPER package provides an efficient way for developers to
retrieve metadata for database objects, such as tables, views, and indexes.
In previous releases,
object metadata had to be retrieved using the DBMS_METADATA package, and then queries had to be performed on
various data dictionary tables and views. This method returned metadata in XML
format.
The DBMS_DEVELOPER package returns metadata in JSON format, which can
be easily integrated with applications and services, such as developer tools.
You can adjust the level of detail to control the amount of metadata returned,
tailoring it to your application's needs. Additionally, metadata retrieval time
is significantly improved, enhancing integration with applications and
services.
Read access to tables and
partitions is tracked with a new dynamic performance view [G]V$TABLE_ACCESS_STATSand exposed in a user-friendly
manner as data dictionary views [DBA
| ALL | USER]_TABLE ACCESS_STATS,
providing a deeper understanding of the access frequency of tables and
individual partitions.
Allowing the user to see
how often tables and individual partitions are read enables you to
understand the importance and frequency of your data for better assessment of
your lifecycle management of your data.
Applications can now be
notified when DDLs occur on tables.
Applications that need or
want to be aware of table metadata can be notified of DDL changes rather than
having to continuously poll for them.
DBMS_PIPE, an in-database
messaging framework for inter-session communication, got enhanced to support a
broader set of applications and use cases. DBMS_PIPE now can share messages
across multiple database sessions with concurrent reads, provides more
flexibility in managing messages overall, and supports persistence and
inter-instance and inter-database communication through object store buffering.
Providing a more
comprehensive in-database inter-session messaging and communication
enables more applications to take advantage of DBMS_PIPE, improving the
reliability and scalability of applications. It also
increases developer productivity by eliminating the need for more complex
application architectures.
The implementation of the
Oracle client character set ZHS32GB18030 is updated to support the latest
GB18030-2022 standard.
This feature enables
Oracle AI Database to conform to the latest edition of the GB18030 standard,
which is required for all software products sold in China.
PL/SQL function get_graphql_schema lets you construct the GraphQL
schema for a relational schema.
A GraphQL schema helps
you understand how GraphQL types (database tables) are linked with each other,
and how to create GraphQL queries for the database.
SQL table function graphql
lets you query Oracle Database using the GraphQL open-source query language.
Application developers
can benefit from GraphQL�s what-you-see-is-what-you-get syntax, which is
especially useful for those less familiar with SQL.
In RSI stream mode,
connection and prepared statement instances are created for every batch. With
the new data load mode, the instances are created once and saved in the
thread's local context.
This feature brings
faster data ingestion into the Oracle AI Database.
ODP.NET supports the .NET
Task Asynchronous Programming (TAP) model with the core and managed drivers.
With support for TAP and
the async and await keywords, ODP.NET data access operations are more
responsive and easier to develop for asynchronicity.
OpenTelemetry is a popular open-source
observability framework for instrumenting, generating, collecting, and
exporting telemetry data. It provides a common specification and protocol so
that multiple services can furnish a unified version of traces, metrics, and
logs.
Numerous managed ODP.NET
and ODP.NET Core APIs have been instrumented to support OpenTelemetry tracing.
Developers can customize the ODP.NET OpenTelemetry trace settings and use
manual, dynamic, or automatic instrumentation when needed.
With OpenTelemetry
support, monitoring, tracking, and analyzing how ODP.NET operations
interact in cloud computing, microservices and distributed systems becomes
easier using this industry standard.
PL/SQL string indexed
associative arrays are now supported by Oracle Call Interface (OCI).
Applications can natively pass these associative arrays between the database
and the client application allowing for creating, binding, and manipulating of
this collection type.
This feature allows
for more straightforward and less error-prone code development.
The new RESETTABLE
keyword in PL/SQL lets you indicate that a package can discard its state during
reinstantiation without issue.
The RESETTABLE
keyword marks packages that do not need to retain information during
reinstantiation. This allows you to avoid the error ORA-4068: existing state of packages has been
discarded
during patches when you know that the package state can be discarded without
issue.
Oracle Result Cache
allows the caching of query results in memory to improve the performance of
frequently executed queries. Queries are cached optimistically based on the
setting of result_cache_mode or explicit hinting, which
considers objects that are not explicitly declared as deterministic for query
caching.
Controlling the result
cache integrity mode enables customers to enforce the requirement of declaring
objects as deterministic before being considered for result caching.
Providing the capability
to enforce the requirement of explicitly deterministic objects for query
caching improves code quality and rules out the chance of accidentally caching
objects that should not be cached.
A new ARGUMENT
command lets users of batch scripts control how SQL*Plus treats script argument
variables for which the users have not explicitly set values. With this
command, users are now able to control when to prompt for input or use a
default value for each unset script argument.
This feature gives SQL
script processing more resiliency and flexibility, allowing script actions to
be customized by users if they want to alter parameter values.
This command reads the
default tnsnames.ora file and generates a JSON file suitable for uploading to a
Centralized Configuration Provider.
This command makes it
easier to migrate away from tnsnames.ora files and allows connection strings to
be stored centrally.
A new OERR
command in SQL*Plus allows users to see Oracle error message Cause and Action
text within SQL*Plus for a user-supplied error number. The existing HELP
command has also been enhanced to show the same text.
This feature allows
developers to immediately get more information about error messages.
A new SQL*Plus PING
command and equivalent command line option can be used to show the round-trip
time from SQL*Plus to either the network listener or to the database.
The network listener
check is equivalent to the traditional tnsping
command line utility that administrators use to check basic network
connectivity. The option to check the database round-trip time is commonly used
as a liveness check to ensure that the database itself is reachable.
This feature gives users
of SQL*Plus power to verify basic connectivity, which is useful in many
troubleshooting or post-install scenarios.
A new SET ERRORDETAILS command lets users decide whether additional
information should be displayed when Oracle errors are generated in failure
scenarios. Additional information that can be displayed is the error help URL
and the message Cause and Action text.
This feature improves the
developer experience by allowing faster troubleshooting.
This command can be used
to show details about the current connection, list Oracle Net Service names
present in the tnsnames.ora file, and resolve a given net
service name to a connection string.
Knowing more about
connection strings enables users to connect to Oracle AI Database more easily,
and aids troubleshooting connection issues.
Set SESSION_EXIT_ON_PACKAGE_STATE_ERROR to true to force a hard
session exit when a session's state has been invalidated.
Exiting sessions after
state invalidation avoids errors that can occur when applications mishandle
invalid state.
The new
UCA1210_JAPANESE_IVS collation allows the processing of Unicode
Ideographic Variation Sequence (IVS) in Japanese text. The SQL functions LENGTHC(),
SUBSTRC(), INSTRC(),
and LIKEC() are also enhanced to count IVSs
as single complete characters.
This feature
enables application developers to build applications supporting Unicode
IVS. It is an important requirement for markets, such as Japan, where
processing of data including names such as person names, place names, and
historic texts often need to support ideographic characters represented in
Unicode IVS.
In this release,
the Oracle JVM infrastructure has been re-architected to support JDK
11 capabilities including the Java module system.
This feature fosters
productivity through the design or reuse and execution of code and
libraries based on Java 11, inside the database.
This feature furnishes an
enhanced implementation of the Web Services Call-Out Utility. Java, PL/SQL, and
SQL can now perform a more efficient Web Services Callout.
This feature fosters
extensibility and productivity by allowing Oracle AI Database to invoke external
Web Services.
Oracle JVM now offers a
more flexible Lockdown Profile configuration for on-premises and cloud database
services (for example, Autonomous AI Database). HTTP and TCP callouts can now
be enabled separately from other OS calls to allow deployments that depend on
HTTP and TCP access.
This feature couples
extensibility (for example, making HTTP and TCP callouts) with enhanced
security for Java code running in the database.
Multilingual Engine (MLE)
Modules and Environments allow JavaScript code to persist and be managed in the
database. Call specifications provide a means to call JavaScript functions from
an MLE module anywhere you can call PL/SQL functions.
The introduction of
JavaScript Modules and Environments as schema objects in Oracle AI Database
allows developers to follow established and well-known workflows used in
client-side JavaScript development. Complex projects can be broken down into
smaller, more manageable pieces worked on independently by team members.
Multilingual Engine (MLE)
Module Calls allow developers to invoke JavaScript functions stored in modules
from SQL and PL/SQL. Call Specifications written in PL/SQL link JavaScript to
PL/SQL code units.
Thanks to Module Calls,
developers can use JavaScript functions anywhere PL/SQL functions are called.
Oracle Multilingual
Engine (MLE) allows developers to debug their JavaScript code by conveniently
and efficiently collecting runtime state while the program is being processed,
a method referred to as post-execution debugging. After the code has finished
running, the collected data can be used to analyze program behavior, discover,
and fix bugs.
Post-execution debugging
offers a convenient way to extract runtime state information from a JavaScript
code unit at runtime without having to change the observed code.
Simple Oracle Document
Access (SODA) is a set of NoSQL-style APIs that let you create and store
collections of documents (in particular JSON) in Oracle AI Database, retrieve
them, and query them, without needing to know SQL or how the documents are
stored in the database. With the introduction of MLE, JavaScript support for
SODA documents exists for client-side and server-side development.
Supporting the Simple
Oracle Document Access (SODA) API in JavaScript gives developers a choice
between using JSON in a relational or No-SQL way, simplifying the development
process and improving the portability of code.
Support for JavaScript
Object Notation (JSON) is an integral part of Oracle AI Database. Oracle
supports JSON natively with relational database features, including
transactions, indexing, declarative querying, and views. A rich set of SQL
functions is available to manipulate JSON in a relational model. Oracle
Multilingual Engine (MLE) fully supports JSON: both dynamic MLE as well as MLE
Module Calls support interactions with the JSON data type.
JSON and JavaScript
objects are closely related, forming a natural match in such a way that makes
working with JSON very easy with JavaScript code.
Syntax checks are now run
at compile time on JavaScript functions executed using inline call
specifications, providing valuable analysis of your code before runtime.
When used in combination
with the linting tool of your choice, compile-time syntax checks can help
increase confidence in the readiness of your code by providing an extra step of
code analysis. This compile-time support matches the checks already available
when creating MLE modules.
The EXECUTE ON JAVASCRIPT privilege is no longer required
in order to run JavaScript code from your user account.
You can now create
Multilingual Engine (MLE) modules and execute inline call specifications to
publish JavaScript functions without the extra step of granting the EXECUTE ON JAVASCRIPT privilege. This provides a more
streamlined introductory experience to using MLE.
The Foreign Function
Interface (FFI) allows JavaScript developers to use a more familiar syntax to
call code units written in PL/SQL.
Rather than using PL/SQL
blocks, it is possible to use native JavaScript constructs to interact with
most code written in PL/SQL. Using the FFI provides JavaScript developers with
a much improved experience by streamlining the process of integrating PL/SQL
code into JavaScript functions.
The PURE
option can be specified on Multilingual Engine (MLE) environments and
JavaScript inline call specifications to create restricted JavaScript contexts
in which interaction with database functionality is not possible.
Creating restricted
JavaScript execution contexts using the PURE option
gives you a convenient way to limit capabilities of JavaScript code running in
the database. A JavaScript program executing in a restricted context is
guaranteed not to modify database tables or use PL/SQL packages, regardless of
database privileges currently in effect. Common data processing use cases with
user-defined functions require only computations on function inputs. In these
scenarios, restricted contexts provide a safety net, prohibiting unwanted
database modifications�for example, when using third-party or open-source
JavaScript libraries.
In the context of AI
Vector Search, JavaScript functions can be used as user-defined vector distance
metrics when creating an HNSW index. Only JavaScript functions marked with the PURE
option are allowed on HNSW indexes.
Objects and collection
data types are now supported with the Multilingual Engine (MLE). These types
can now be used in call specifications as IN, OUT,
and IN OUT function arguments as well as RETURN
types.
The support of
user-defined types and collections extends the available use cases for MLE in
your applications.
You can specify a
vector's storage format as either SPARSE or DENSE.
Sparse vectors are vectors that typically have a large number of dimensions but
with very few non-zero dimension values.
Apart from potential
performance improvements, sparse vectors can use considerably less space than a
corresponding dense vector with very few non-zero values. Users of In-Database
JavaScript benefit from sparse vector support.
The reset database
session state feature clears the session state set by the application when the
request ends. The RESET_STATE database service attribute cleans
up dirty sessions so that the applications cannot see the state of these
sessions. This feature applies to all applications that connect to the database
using database services.
This feature uses the RESET_STATE attribute on the database service to direct the
database to clean the session state at the end of each request so that
developers do not have to clean the session state manually. By using this
feature, you ensure that there are no data leaks from a previous session.
This feature enables the
automatic assignment of DRCP servers to and from an application connection at
runtime when the application starts and finishes database operations, even if
the application does not explicitly close the connection.
This feature can
provide better scalability and efficient usage of database resources for
applications that do not use application connection pooling.
Client applications that
do not use an application connection pool can take advantage of CMAN-TDM Proxy
Resident Connection Pooling (PRCP) without making any application changes.
The new feature enables
the automatic assignment of PRCP servers to and from an application connection
at runtime when the application starts and finishes database operations even if
the application does not explicitly close the connection.
This feature can reduce
the size of PRCP pools required. It provides better scalability and
efficient usage of resources for applications that do not use Oracle Session
Pooling or Universal Connection Pooling (UCP).
Oracle Connection Manager
in Traffic Director Mode (CMAN-TDM) has new Proxy Resident Connection Pooling
(PRCP) configuration settings for use with Autonomous AI Database. Per-PDB PRCP
pools can be enabled, allowing you to consolidate connection pools for each PDB
and share these sessions across multiple services that belong to the same PDB.
The maximum PRCP pool size can be dynamically configured based on the new cman.ora
parameter TDM_PERPDB_PRCP_CONNFACTOR and the Oracle Compute Unit
(OCPU) count allocated to each PDB.
The per-PDB PRCP mode
provides efficient usage of database resources by reducing the number of pools
in a CMAN-TDM gateway. Pool sizing can also now be more autonomous, reducing
the need for manual re-configuration.
This feature allows, when
the RDBMS server supports it, templates (for example, stable restorable
attributes), which are cross-session (one template might be used by multiple
sessions). This feature also brings the ability to avoid the combinatorial explosion
of templates by quarantining session states that are different in most sessions
and therefore cannot be shared.
This feature simplifies
high availability by moving most application continuity configurations to the
server-side. Java applications inherit transparently (that is, no code
required) the latest server-side enhancements.
JDBC instrumentalization
for securely pulling Java Apps configuration from central stores such as
Azure Config Store or OCI Object store or any JSON file accessible from generic
web servers.
This feature
simplifies Java application configuration in multi-Cloud
environments.
By default, the Oracle
JDBC Thin driver uses the default Kerberos login module, bundled with Oracle
JDK (com.sun.security.auth.module.Krb5LoginModule). This feature enables
applications that want to override the default behavior to specify a JAAS
configuration file through the connection properties.
This feature provides
flexibility with Kerberos Authentication configuration.
This feature enables the
users to configure Kerberos Principal and Password through the User and
Password properties. The JDBC Thin driver takes care of initializing the KerberosLoginModule on behalf of the applications.
This feature simplifies
Kerberos Authentication configuration.
The Oracle JDBC driver
provides support for OAuth 2.0 authentication for Oracle
Cloud Infrastructure (OCI) Identity and Access Management (IAM) Cloud
Service or the Azure Active Directory.
This feature simplifies
Java application authentication to the Oracle Autonomous AI Database using
OAuth 2.0 in multi-Cloud environments (OCI, Azure) in lieu of traditional
credentials mechanisms such as username/password or strong authentication
mechanisms, such as Kerberos or Radius.
The Connection.setReadOnly and Connection.isReadyOnly methods have been enhanced to
transparently support True Cache. Developers simply need to set the new
connection and system property oracle.jdbc.useADCDriverConnection to true.
JDBC support for True
Cache furnishes mission-critical availability of Oracle AI Database to Java
applications. It eliminates single points of failure and prevents data loss and
downtime.
JavaScript in Oracle AI
Database (Multilingual Engine) can now be used in database connections using a
Database Resident Connection Pool (DRCP). You can now invoke JavaScript
procedures and functions in DRCP sessions, and use the DBMS_MLE
API.
Support of DRCP extends
access to in-database JavaScript and allows those workloads using in-database
JavaScript to leverage the benefits of DRCP, such as improved scalability.
Database Resident
Connection Pooling (DRCP) now supports multiple named pools. New DBMS_CONNECTION_POOL.ADD_POOL() and DBMS_CONNECTION_POOL.REMOVE_POOL() procedures are added. Oracle Net
connection string syntax is enhanced so a pool name can be specified for each
connection. Existing procedures can be used to start, stop, or configure the
named pools. Existing GV$ and V$
views show the appropriate pool name(s) in use.
Having multiple pools
allows finer control on the DRCP pool usage. It helps prevent situations where
some applications dominate the use of a single pool.
Oracle Transparent
Application Failover (TAF) is a high availability feature that enables client
apps to automatically reconnect to a secondary database instance if the
connected primary instance fails or shuts down. ODP.NET Core and managed
ODP.NET now support connection and basic session state TAF.
ODP.NET TAF enables apps
to recover and continue operating when database downtime occurs. It requires no
changes to .NET application code to use.
ODP.NET Core and managed
drivers now support Application Continuity (AC) and Transparent
Application Continuity (TAC). AC and TAC mask outages from end users and
applications by recovering the in-flight database sessions following
recoverable outages, including transactions. The recovery is transparent such
that the end user merely experiences a slightly delayed execution, but no
perceptible outage nor error.
AC and TAC improve the
user experience for both unplanned outages and planned maintenance.
They enhance the fault tolerance of systems and .NET applications
that use Oracle AI Database. Developers can use AC and TAC with existing .NET
apps without making any code changes.
ODP.NET core and managed
drivers support pipelining for its database communication.
It allows subsequent database requests to be sent and queued
transparently even while ODP.NET awaits a database response.
Pipelining improves
overall app performance and allows database resources to be used more
effectively. ODP.NET does not need to wait for the database to respond from
previous requests before submitting subsequent requests.
Oracle Call Interface
(OCI) has been enhanced to support pipelining of operations. Pipelining
enables applications to submit multiple database operations without waiting for
a response from the server. The application has control over when the
responses to the pipelined operations are harvested. This allows applications
to continue work without being blocked while the database is generating results.
This feature is used to
increase the overall throughput and responsiveness of applications and
languages that use OCI. Pipelining reduces the server and client idle times in
comparison with the traditional request-response model.
The Oracle Call Interface
(OCI) session pool usage statistics can be viewed.
The statistics help in
tuning pool sizes for better performance, and aid in understanding the life
cycle of connections.
Oracle AI Database's Set
Current Schema and Direct Path API features are now supported by Oracle
Connection Manager in Traffic Director Mode (CMAN-TDM).
This feature enables more
client applications to leverage CMAN-TDM connection multiplexing capabilities.
A new V$TDM_STATS view can be used to query usage statistics for
CMAN-TDM per-PDB Proxy Resident Connection Pools (PRCP), such as the number of
active client connections in the connection pool, the number of busy and free
server connections, the maximum number of connections reached, and more.
Providing usage
statistics helps to improve the monitoring and tuning of CMAN-TDM.
Resumable cursors,
those that span transactions, will be replayable with Transparent Application
Continuity. Such cursors are common in batch processing (such as loading
sets of records) and require special handling to reposition those cursors
during replay with Transparent Application Continuity.
Broadened support with
Transparent Application Continuity for applications that rely upon resumable
cursors, those that span commits. These cursors are very common in
repetitive batch operations, looping through sets of records for updates and
inserts with a commit for each set of records. Now, TAC will be able to replay
the transactions that were interrupted (and not yet committed).
A new, optional DRAINTIME
argument to DBMS_CONNECTION_POOL.STOP_POOL() allows active DRCP pools to be
closed after a specified connection drain time, or be closed immediately
without waiting for connections to be idle.
This feature gives DBAs
better control over DRCP usage and configuration.
This feature allows
sharded database connections to participate in eXtended Architecture (XA)
transactions managed by WebLogic Server Transaction Manager.
This feature allows
reliable XA transactions coupled with the scalability of sharded databases.
Oracle supports LDAP
based name look-up for retrieving Database connection strings from the
directory servers. The directory used can be OID, OUD, or AD.
Now, LDAP-based name
lookup is possible without having ldap.ora
and sqlnet.ora. The values that are specified as
part of ldap.ora and sqlnet.ora
for ldap name lookup, are passed in the URL string. If ldap.ora
or sqlnet.ora is present and the ldap URL is
passed, then the preference is given to the URL string.
For example: ldap[s]://host[:port]/name[,context]?[parameter=value{¶meter=value}]
Easy Connect Plus extends
its support beyond TCP and TCPS to make it easy to use LDAP and LDAPS protocol
and parameters.
Connection creation using
the user thread, in the context of a borrow request, can take longer than the
specified connectionWaitTimeout (CWT). If a connection has been released by
another thread in the meantime, the connection creation request keeps waiting
for the operation to complete. It is therefore more effective to borrow the
released connection rather than waiting for the one being created.
This feature brings
performance enhancement to Java applications during connection borrow.
A new Connection property
oracle.jdbc.sendBooleanAsNativeBoolean is added to restore the old behavior of
the Boolean data type, which is used to take integer (0 or 1) for a Boolean
data type.
When set to false (the default is true), this property will restore the old
behavior of sending integer values (0 or 1) for the boolean data type.
This feature brings
compatibility to Java applications that rely on the old behavior of the boolean
data type.
The feature furnishes
backward compatibility with the earlier JDBC driver behavior. This feature
simplifies upgrading to the latest JDBC driver without breaking the behavior of
existing Java applications.
Annotation is a mechanism
to store application metadata centrally in the database. Annotations can be
specified at creation time (CREATE) or at modification time (ALTER). An
individual annotation has a name and an optional value. Both the name and the
value are freeform text fields. A schema object can have multiple annotations.
JDBC furnishes the getAnnotations() method with two signatures (as
illustrated below). It returns the annotation associated with the specified
table or view. It returns null if there is no annotation for the
given object.
getAnnotations?(java.lang.String objectName,
java.lang.String domainName, java.lang.String domainOwner) throws
java.sql.SQLException
getAnnotations?(java.lang.String objectName,
java.lang.String columnName, java.lang.String domainName,
java.lang.String domainOwner) throws java.sql.SQLException
This feature enables
sharing metadata across applications and microservices thereby increasing
metadata management and productivity.
In the previous releases,
the JDBC driver would not allow another database call to start until the
current call had been completed however, with asynchronous and reactive
programming, Java applications could perform non-database operations, in the
meantime. In this release, the database server and the Oracle JDBC-Thin both
support pipelining database operations. Java applications can now
asynchronously submit several SQL requests to the server without waiting for
the return of the preceding calls.
The combination of Java
reactive and asynchronous programming (JDBC Reactive Extension, Reactive
Streams (R2DB and Virtual Threads) with database support for pipelining fosters
high throughput.
This feature exposes
the Oracle RDBMS BOOLEAN data type to Java through a
new BOOLEAN data type in oracle.jdbc.OracleType Enum, and DatabaseMetadata. This feature also performs the implicit
conversion of character and number data types to BOOLEAN
data types.
Java applications can take
advantage of the new JDBC support for the standard JDBC BOOLEAN
data type. The benefits include: increased portability and the ease of
development fostered by the implicit conversion of character and number to BOOLEAN.
This feature eliminates
the need to switch from the non-logging JAR files (for example, ojdbcXX.jar) to the debug JAR files (for example, ojdbcXX_g.jar) for logging purposes. In addition, it enables
logging in the following three ways: logging per connection, logging at the
tenant level, or logging globally.
This feature furnishes
increased productivity and ease of use for Java applications. It greatly
simplifies the debugging of Java applications by removing the need to switch
from the production jars to the debug jars.
ODBC now supports the new
SQL BOOLEAN data type.
Using the SQL BOOLEAN
data type enables applications to represent the state more clearly.
Oracle Call Interface
(OCI) now supports querying and binding of the new SQL BOOLEAN
data type.
Using the SQL BOOLEAN
data type enables applications to represent state more clearly.
The Pro*C and Pro*COBOL
precompilers now support querying and binding of the new SQL BOOLEAN
data type.
Using the new data type
makes it easier to represent boolean state in applications instead of
using a character column to indicate Y or N.
Universal connection pool
(UCP) is extended with asynchronous (reactive) database calls.
This
extension furnishes high scalability and throughput to Java applications.
The new universal
connection pool (UCP) diagnosability feature provides the following
capabilities:
This feature fosters
productivity (for example, real-time debugging) and ease of use for Java
applications using the UCP.
This section describes
the new data analytics features.
You can create Hybrid
Partitioned Tables using single-level partitioning with interval and automatic
list partitioning. This is in addition to existing support for single-level
partitioning and range and list partitioning.
These extensions to
Hybrid Partitioned Tables in Oracle AI Database provide a user-friendly
partitioning strategy.
This release introduces
the following two new string matching operators based on approximate or
"fuzzy" string matching.
PHONIC_ENCODE
converts words or phrases into language-specific codes based on
pronunciation. FUZZY_MATCH,
which is language-neutral, gauges the textual similarity between two
strings.The new phonic encoding
and fuzzy matching methods enable more sophisticated matching algorithms to be
run directly on data in the database rather than only in external applications,
providing improved matching performance and efficiency, for example in data
de-duplication, linking or enhancement.
Oracle AI
Database automatically and transparently clusters storage-based data in
response to the type of queries used by the application workload. This allows
the workload to make more efficient use of data access optimizations, such as
storage indexes, zone maps, and join zone maps.
This feature
significantly improves performance for data warehousing workloads based on zone
maps or storage indexes. Once data is clustered, the performance of
data-scanning queries improves because larger contiguous areas (or zones) of
storage are pruned or skipped when they do not contain the data being matched
by a particular query.
Materialized views of
JSON tables have been enhanced with the ability to fast refresh more types of
Materialized Views of JSON tables as well as Query Rewrite support for these
Materialized Views.
The performance for JSON
table Materialized Views is significantly improved through better fast refresh
capabilities and better query rewrite capabilities for more workloads. You can
use JSON table Materialized Views more broadly in your applications, with
better performance and less resource utilization.
Oracle SQL Access to
Kafka (DBMS_KAFKA) provides efficient, reliable, and scalable access to data
streams from Apache Kafka and OCI Streaming Service. Streaming data can be
queried via SQL or loaded into Oracle AI Database tables.
Oracle AI Database provides
efficient, reliable, and scalable integration with Apache Kafka using the DBMS_KAFKA
APIs. This API enables Oracle AI Database to consume data from external data
streams without the need for costly, complex direct application connections
using proprietary interfaces. Oracle SQL Access to Kafka enables you to use
Oracle AI Database's rich analytic capabilities across all your data.
You can specify a new
automatic maintenance mode for text indexes using the MAINTENANCE AUTO index parameter. This method automates the CTX_DDL.SYNC_INDEX operation. This is now the
default synchronization method for new indexes.
With this method, newly
created text indexes do not require you to specify a synchronization interval
or manually run a SYNC_INDEX operation. A background process
automatically performs these tasks without user intervention. This helps in
synchronizing a large number of indexes in an optimal manner, and also
eliminates the manual or time-based SYNC operations. By using a background
job rather than the database scheduler, it avoids scheduling conflicts and the
risk of running out of available jobs. Overall it makes for simpler, more
resilient applications and better utilization of hardware resources.
Transportable binary XML
(TBX) is a new self-contained XMLType storage method. TBX supports sharding,
XML search index, and Exadata pushdown operations, providing better performance
and scalability than other XML storage options.
You can migrate existing
XMLType storage of a different format to TBX format in any of these ways:
Transportable binary XML
(TBX) provides better performance and scalability. With the support of more
database architectures, such as sharding or Exadata, and its capability to
easily migrate and exchange XML data among different servers, containers, and
PDBs, TBX allows your applications to take full advantage of both this new XML
storage format on more platforms and architectures.
Materialized view refresh
provides concurrent refresh, where multiple sessions can refresh the same
on-commit materialized views simultaneously without the need for
serialization.
Concurrent refresh
broadens the applicability of materialized views for your applications and
helps make application development simpler. It provides faster refresh and
more up-to-date materialized views.
Indexes incur a
maintenance overhead during DML operations. This can work against their
improvements to data access performance. The enhancements to Automatic
Indexing take a broader view than in previous releases and account for
index maintenance costs when deciding which indexes will benefit the workload
as a whole. Columns filtered using range predicates are considered for indexes
and function-based indexes are now supported. This further increases the scope
of Automatic Indexing effectiveness.
Automatic Indexing better
assesses the impact of DML operations in your database when choosing automatic
indexing. Your performance benefits by determining the overall advantage
of an index to your workload.
Automatic materialized
views have been enhanced to include automatic partitioning. In addition, there
is a more accurate internal cost model for automatic materialized view
selection, which considers both access benefits and maintenance (refresh)
costs, as well as the frequency of execution.
Rewrite capabilities have
been broadened, including outer join queries with filter predicates.
Enhancing Automatic
Materialized Views with more accurate cost-benefit analysis and broader
usability optimizes the management of your materialized view eco
system and improves the overall performance of your system.
Automatic SQL plan
management has been enhanced to detect and repair SQL performance regressions
more quickly. SQL plan changes are detected at parse-time and, after
initial execution, SQL performance is compared with the performance of previous
SQL execution plans. If a performance degradation is detected, the plan is
repaired accordingly.
With automatic SQL Plan
Management, your application service levels improves, and impacts caused by SQL
performance (plan) regressions are minimized and addressed transparently and
proactively.
Distributed LOBs are LOBs
that are fetched from one server to another and may optionally be returned to
the client. Shared LOBS are an extension of distributed LOBs where LOBs are
transported between shards or between a shard and the shard coordinator. In previous
versions, support for sharded and distributed LOBs were limited to persistent
LOBs, and temporary LOBs only where they originate from JSON operations. Now
all temporary LOBs (including Value LOBs) and new increased-length inline LOBs
are usable as distributed and sharded LOBs.
You can now work with
inline LOBs, value LOBs, and all temporary LOBs in distributed and sharded
environments.
You experience improved
performance, scalability, and garbage collection when you work with temporary
LOBs, thus improving your developer productivity and application resilience.
Parallel processes
are released pro-actively before individual statements using
parallelism are finished. For example, an uncommitted parallel DML
operation or a partially fetched parallel SELECT
statement with 2 Parallel Server Sets (Producer-Consumer) will release one
of the Parallel Server Sets as soon as it has finished working, freeing
half of the parallel process for use of other statements.
Releasing parallel
processes as early as possible and making them usable for other statements
optimizes the utilization of your available resources, improving the overall
performance of your systems and applications.
LOB values are stored
either in the table row (inline) or outside of the table row (out-of-line). The
maximum size of the inline LOB is increased to 8000 bytes, allowing larger LOB
values being stored inside a row. Earlier, the maximum size was 4000.
This provides better
input-output performance while processing LOB columns. You can experience the
improved performance while running operations, such as full table scans, range
scans, and DML.
Materialized Views in
Oracle AI Database support full rewrite capabilities for SQL statements using
ANSI join syntax and for Materialized View definitions using ANSI join syntax.
Full support of ANSI
joins with materialized view rewrite provides a significant performance
improvement. Many queries, particularly ones generated by SQL Tools and
Reports, often use ANSI join syntax. This enhancement allows such tools to
benefit from materialized views for query rewrite regardless of the syntax
used by joins.
Value LOBs, a read-only
subset of Temporary LOBs, are valid for a SQL fetch duration and optimize the
reading of LOB values in the context of a SQL query. Many applications use LOBs
to store medium-sized objects, about a few megabytes in size, and you want to
read the LOB value in the context of a SQL query.
Value LOBs provide faster
read performance and get automatically freed when the next fetch for a cursor
is performed, preventing the accumulation of temporary LOBs and simplifying the
LOB management within your application.
Value LOBs provide faster
read performance than classical reference LOBs for your workload and don't need
specific LOB management in your application. Using Value LOBs improves your
application performance and makes implementing applications with LOBs simpler
and more manageable.
Semi-Join Materialized
View Rewrite is a unique form of query rewrite. A single, large
unified dimension table in the query is replaced with one or more join-specific
materialized views. In a unified dimension data model, where multiple dimension
tables are merged into a single large dimension table, semi-join Materialized
Views materialize one or more of the joins of such a single, large unified
dimension table with the fact table.
This new type of
Materialized View significantly improves the runtime and resource consumption
for complex analytical operations. Semi-join Materialized Views are especially
beneficial when the number of applicable dimension keys derived from the large
unified dimension table (through semi-join) is small.
The new DBMS_SEARCH PL/SQL package allows the indexing of
multiple schema objects in a single index. You can add a set of tables,
external tables, or views as data sources into this index. All the columns in
the specified sources are indexed and available for a full-text search.
With a simplified set of DBMS_SEARCH APIs, you can create indexes across multiple
objects, add or remove data sources, and perform a full-text search within a
single data source or across multiple sources using the same index.
This simplifies indexing
tasks that were previously performed using the USER_DATASTORE procedures, thus enhancing developer productivity.
Automatic In-Memory (AIM)
has been enhanced to automatically enable creation and removal of Database
In-Memory performance features based on an enhanced workload analysis
algorithm. These features include Join Groups, caching of hashed dictionary
values for join key columns and In-Memory Optimized Arithmetic.
Automatic In-Memory (AIM)
has been enhanced to identify and enable or disable Database In-Memory features
that can improve performance. It enables features either selectively or
globally, depending on which adds the most benefit. This improves application
performance and also conserves space in the In-Memory column store without
requiring manual intervention.
The In-Memory column
store will now automatically grow and shrink dynamically based on workload.
This allows the In-Memory column store to be available on Autonomous AI
Database. Exadata scan performance is further improved for objects that are
partially populated.
With Automatic In-Memory
sizing, there is no longer a need to manually resize the In-Memory column store
to accommodate different database workloads. This reduces the administrative
effort of enabling Database In-Memory. Automatic In-Memory sizing also allows
the In-Memory column store to be enabled on Autonomous AI Database (ADB),
enabling applications running on ADB to also take advantage of faster analytic
query performance.
Heat Map Retention Time
allows users to set the number of days that Heat Map data, which includes data
access and data modification tracking information, is retained by the database
before it is deleted. Using the new PL/SQL package DBMS_HEAT_MAP_ADMIN, users can specify Heat Map
Retention Time, ranging from 1 day to 4294967294 days.
Retention times allow
customers to optimize their storage by purging Heat Map data that is no longer
required.
To enhance the
performance of DATE-based queries DATE components (i.e. DAY, MONTH, YEAR) can
be extracted and populated in the IM column store leveraging the In-Memory
Expressions framework.
This enhancement enables
faster query processing on DATE columns which can significantly improve the
performance of date based analytic queries.
Database In-Memory Join
Groups now support Global Dictionaries across RAC nodes. With Join Groups a
common dictionary is shared by columns that are joined together. In-Memory
RAC-level global dictionaries now synchronize these common dictionaries across
nodes within a RAC database.
In a RAC environment,
this feature further improves database In-Memory performance for distributed
hash joins.
With Selective In-Memory
columns, it is now easier to add or exclude columns for in-memory. An ALL
sub-clause has been added so that all columns can be either enabled or disabled
from in-memory. This reduces the need to have very long strings of included or
excluded columns.
With Selective In-Memory
columns, the ability to specify ALL columns to be enabled or disabled
from in-memory reduces the need for very long strings of columns, which reduces
the chance for errors and makes configuring in-memory enabled tables easier.
This feature enhances the
In-Memory Deep Vectorization framework by fully exploiting SIMD capabilities to
further improve hash join and group by aggregation performance. New
optimizations include incorporating multi-level hash join support, full
In-Memory group by aggregation support, and support for multi-join key and
additional join methods.
This feature adds
improvements in the performance of joins and aggregations, which are the
foundations for analytic queries. This enables faster real-time analytic
performance and requires no application SQL changes. This feature is
automatically used when enabled, which is the default.
This feature enables the
Exponential Smoothing algorithm to select the forecasting model type
automatically - as well as related hyperparameters - when you do not specify
the EXSM_MODEL setting. This can lead to more
accurate forecasting models.
This feature automates
the Exponential Smoothing algorithm hyperparameter search to produce better
forecasting models without manual or exhaustive search. It enables non-expert
users to perform time series forecasting without detailed understanding of
algorithm hyperparameters while also increasing data scientist productivity.
The unstructured text
analytics algorithm Explicit Semantic Analysis (ESA) is able to output
dense projections with embeddings, which are functionally equivalent to
the popular doc2vec (document to vector) representation.
Producing a doc2vec
representation is useful as input to other machine learning techniques, for
example, classification and regression, to improve their accuracy when used
solely with text or in combination with other structured data. Use cases
include processing unstructured text from call center representative notes on
customers or physician notes on patients along with other customer or patient
structured data to improve prediction outcomes.
The in-database
Generalized Linear Model (GLM) algorithm now supports additional link functions
for logistic regression: probit, cloglog, and cauchit.
These additional link
functions expand the set available to match standard Generalized
Linear Model (GLM) implementations. They enable increasing model quality,
for example, accuracy, by handling a broader range of target column data
distributions and expand the class of data sets handled. Specifically, the
probit link function supports binary (for example, yes/no) target variables,
such as when predicting win/lose, churn/no-churn, buy/no-buy. The asymmetric
link function complementary-log-log (cloglog) supports binary target variables
where one outcome is relatively rare, such as when predicting time-to-relapse
of medical conditions. The cauchit link function supports handling data with,
for example, data recording errors, more robustly.
This feature introduces
the setting ODMS_EXPLOSION_MIN_SUPP to allow more efficient,
data-driven encoding for high cardinality categorical columns. You can
adjust the threshold (define the minimum support required) for the categorical
values in explosion mapping or disable the feature, as needed.
This feature introduces a
more efficient, data-driven encoding of high cardinality categorical columns,
allowing users to build models without manual data preparation of such columns.
It efficiently addresses
large datasets with millions of categorical values by recoding categorical
values to include only those with sufficient support, enabling you to overcome
memory limitations.
This feature
enables users to identify the data query that was used to provide the
training data for producing a model. The BUILD_SOURCE column in the ALL/DBA/USER_MINING_MODELS
view enables users to access the data query used to produce the model.
This feature records the
query string that is run to specify the build data, within the model's metadata
to better support the machine learning lifecycle and MLOps.
The Multiple Time Series
feature of the Exponential Smoothing algorithm enables conveniently
constructing Time Series Regression models, which can include multivariate time
series inputs and indicator data like holidays and promotion flags. It enables
constructing Time Series Regression models to include multivariate time series
inputs and indicator data like holidays and promotion flags.
This feature automates
much of what a data scientist would perform manually by generating backcasts
and forecasts on one or more input time series, where the target time series
also receives confidence bounds. The result is used as input to other ML
algorithms, for example, to support time series regression using XGBoost, with
multivariate categorical, numeric, and time series variables.
The Oracle Machine
Learning for Python (OML4Py) API exposes additional in-database machine
learning algorithms, specifically Non-negative Matrix Factorization (NMF)
for feature extraction, Exponential Smoothing Method (ESM) for time series
forecasting, and Extreme Gradient Boosting (XGBoost) for classification and
regression. OML4Py introduces support for date, time, and Integer
datatypes.
The Oracle Machine
Learning for R (OML4R) API exposes additional in-database machine algorithms,
specifically Exponential Smoothing Method (ESM) for time series
forecasting, Extreme Gradient Boosting (XGBoost) for classification and
regression, Random Forest for classification, and Neural Network for
classification and regression.
The enhancements to OML4R
and OML4Py further enable Oracle AI Database as a platform for data science and
machine learning, providing some of the most popular in-database
algorithms from Python and R.
The additional
in-database algorithms enable use cases such as demand forecasting using ESM,
churn prediction and response modeling using Random Forest, and generating
themes from document collections using NMF. As a feature extraction algorithm,
NMF supports dimensionality reduction and as a data preparation step
prior to modeling using other algorithms. XGBoost is a popular
classification and regression algorithm due to its high predictive accuracy and
also supports the machine learning technique survival analysis. Random Forest
is a popular classification algorithm due to its high predictive accuracy.
Neural Network is a classification and regression algorithm that is well-suited
to data with noisy and complex patterns, such as found in sensor data, and
provides fast scoring.
The OML4Py support for
date, time, and integer data types enables operating on database tables
and views that contain those data types, for example, to transform
and prepare data at scale in the database.
The Expectation
Maximization algorithm is expanded to support distribution-based anomaly
detection. The probability of anomaly is used to classify an object as normal
or anomalous. The EM algorithm estimates the probability density of a data
record, which is mapped to a probability of an anomaly.
Using Expectation
Maximization (EM) for anomaly detection expands the set of algorithms available
to support anomaly detection use cases, like fraud detection. Since
different algorithms are capable of identifying patterns in data differently,
having multiple algorithms available is beneficial when addressing machine
learning use cases.
This feature improves the
performance for a high number of partitions (up to 32K component models) in a
partitioned model and speeds up the dropping of individual models within a
partitioned model.
Machine learning use
cases often require building one model per subset of data, e.g., a model per
state, region, customer, or piece of equipment. The partitioned models
capability already automated the building of such models - providing a single
model abstraction for simplified scoring - and this enhancement
improves overall performance when using larger number of partitions.
The in-database XGBoost
algorithm is enahnced to support the machine learning technique survival
analysis, as well as feature interaction constraints and monotonic constraints.
The constrainsts allow you to choose how variables are allowed to interact.
Survival analysis is an
important machine learning technique for multiple industries. This
enhancement enables increased model accuracy when predicting, for example,
equipment failures and healthcare outcomes. Specifically, this supports data
scientists with the Accelerated Failure Time (AFT) model - one of the most used
models in survival analysis � to complement the Cox proportional hazards
regression model.
Interaction and monotonic
constraints provide for greater control over the features used to achieve
better predictive accuracy by leveraging user domain knowledge when specifying
interaction terms.
Exponential Smoothing is
a moving average method with a single parameter which models an exponentially
decreasing effect of past levels on future values. This in-database algorithm
is exposed through the R API of Oracle Machine Learning for R.
Exponential Smoothing
Methods have been widely used in forecasting for over half a century. It has
applications at the strategic, tactical, and operation level. Being exposed as
part of the R API, you have native R access to this in-database algorithm.
The in-database Neural
Network algorithm allows you to address classification and regression use
cases.
Neural networks are
well-suited to data with noisy and complex patterns, such as found in sensor
data, and provide fast scoring. Being exposed as part of the R API, you have
native R access to this in-database algorithm.
The Random Forest
algorithm provides an ensemble learning technique for classification.
Random Forest is a
popular classification algorithm due to its high predictive accuracy. You can
now use this in-database algorithm through the R API of Oracle Machine Learning
for R.
XGBoost is a scalable
gradient tree boosting algorithm that supports both classification and
regression. The in-database implementation makes available the XGBoost Gradient
Boosting open source package.
XGBoost is a popular
classification and regression algorithm due to its high predictive accuracy and
its support for the machine learning technique survival analysis. Being exposed
as part of the R API, you have native R access to this in-database
algorithm.
Exponential Smoothing is
a moving average method with a single parameter which models an exponentially
decreasing effect of past values. This in-database algorithm is exposed through
the Python API of Oracle Machine Learning for Python.
Exponential Smoothing
Methods have been widely used in forecasting for over half a century. It has
applications at the strategic, tactical, and operational levels. Being exposed
as part of the Python API, you have native Python access to this in-database
algorithm.
Non-Negative Matrix
Factorization (NMF) is a state-of-the-art feature extraction algorithm. You can
now use this in-database algorithm through the Python API of Oracle Machine
Learning for Python.
NMF is useful when there
are many attributes, and those attributes are ambiguous or have weak
predictability. By combining attributes through linear combinations, NMF can
produce meaningful patterns, topics, or themes.
OML4Py introduces support
for date, time, and Integer data types.
The OML4Py support for
date, time, and integer data types enables you to create pandas DataFrame proxy
objects and operate on database tables and views that contain
those data types. This enables you to explore and prepare data at scale in
the database.
XGBoost is a scalable
gradient tree boosting algorithm that supports both classification and
regression. The in-database implementation makes available the XGBoost Gradient
Boosting open source package.
XGBoost is a popular
classification and regression algorithm due to its high predictive accuracy.
Being exposed as part of the Python API, you have native Python access to this
in-database algorithm.
The point cloud feature
of Oracle AI Database supports change detection through SQL and PL/SQL APIs.
This feature automates
discovery of relevant changes between two point clouds, enabling easy inclusion
in applications, such as modeling changes in forest canopies, assessing damages
to landscape due to fire, flood, landslides, or earthquakes, and measuring progress
over time in infrastructure projects.
Oracle AI Database
includes a comprehensive set of REST APIs for working with GeoRaster data such
as satellite imagery.
In addition to existing
PL/SQL and Java APIs, developers can use REST APIs to perform GeoRaster query
and data manipulation operations. This feature simplifies the development of
cloud applications which frequently depend on REST APIs.
Developers can use SQL to
generate vector tiles, a dynamic mapping technology, to convert geometries stored
in the Oracle AI Database into vector tiles for efficient map rendering
capabilities in web applications.
The utilization of vector
tiles in map visualization enables businesses to deliver customizable,
efficient, and engaging map experiences.
Database users can have
workspace manager objects in their own schema instead of in the WMSYS schema.
Oracle Workspace Manager
enables collaborative development, what-if analysis from data updates, and
maintains a history of changes to the data. Developers can create multiple
workspaces and group different versions of table row values in different
workspaces. With this enhancement, developers have improved security when using
this feature. All the workspace manager objects can be stored and invoked in
their own user schema in Oracle Autonomous AI Database and user-managed
databases.
This section describes
the new data warehousing/big data features.
Data dictionary views
that contain partitioning-related metadata, for example, ALL_TAB_PARTITIONS, have two additional columns
representing the high value (boundary) information of partitions and
subpartitions in JSON and CLOB format.
Providing the high value
(boundary) partitioning information in JSON and as CLOB allows you to use
this information programmatically. This enables simple and automated processing
of this information for schema retrieval or lifecycle management operations.
Language support is extended
in Oracle Text, now supporting up to 48 languages. Additionally, there is
extended support for all languages. To avoid the extended language support
increasing your install footprint on disk, a new mechanism is introduced to
control the downloaded languages on demand.
Customers benefit from
the improved support for languages and can download the required
files for only the languages they support. They can avoid using disk space
unnecessarily for unneeded languages.
External tables pointing
to data in the object store can consist of a large number of files. These files
can be organized across multiple directories, and even directory trees. You can
use external table partitioning with folder names as part of the file paths.
External table columns can also now return the file name of the source file for
each row. The partition values can be derived from the directory name or
file name.
External tables and
SQL*Loader can load large numbers of data files in object stores and
meet the requirements for Hive-generated tables organized across
multiple directories, and even directory trees. This feature enables
external table partitioning based upon the directory and file
name; for example, you can have files for different months or for
different states in separate directories.
Logical Partition Change
Tracking (LPCT) tracks the staleness of materialized views. LPCT operates at a
fine level of logical granularity and gives you the flexibility to align the
boundaries of logical partitions with the business rules and with changes
applied to tables. It evaluates the staleness of the base tables for individual
logical partitions without using a materialized view log or requiring any of
the tables used in the materialized view to be partitioned.
With LPCT, materialized
view staleness is tracked at the granularity of the logical partitions. This
functionality significantly broadens the applicability of query rewrite for
your application due to the fine-grained query rewrite. With LPCT, you perform
refresh operations targeted at stale logical partitions only, improving the
refresh time and avoiding complete re-loading data.
Staging tables are heap
tables optimized for fast data ingestion and for handling volatile data. Key
table attributes are set to defaults for these use cases without any additional
user interaction.
Creating staging tables
rather than 'normal' tables saves you time and effort so that you do not
need to tune your table attributes for fast data ingestion with volatile data
content. A staging table is configured by default with optimal
configuration settings in order to guarantee the best possible performance
and to avoid unnecessary performance debugging and tuning.
Oracle Cloud makes
migration to Oracle AI Database 26ai more reliable. It provides a tool to
transparently move your Advanced Queue events to the new Transactional Event
Queues. The Cloud Premigration Advisor tool proactively identifies, reports,
and recommends solutions to repair incompatibilities between your source
database and an Oracle Cloud database or on-premises target of interest.
Advanced Queuing (AQ) is
a key feature of the Oracle AI Database used to build application workflows
using events. Queues in the Oracle AI Database come in two flavors - Classic
Queues and the new and improved Transactional Event Queues (TxEventQ). TxEventQ
are Kafka-like and highly performant due to their persistent in-memory caching
implementation.
Oracle AI Database 26ai
introduces an online migration tool to migrate from AQ Classic Queues to the
new TxEventQ. The database creates a new TxEventQ with aliased name and
routes enqueues to it, while it dequeues drain messages from the existing AQ.
After the messages are drained, the migration is complete and the TxEventQ
takes the name of the AQ queue. The TxEventQ migration interface checks for
compatibility and adaptability for migration of an AQ deployment, and can
commit or roll back a migration after running some tests on TxEventQ.
Existing AQ customers
interested in higher throughput queues and with Kafka compatibility using a
Kafka Java Client and Confluent like REST APIs, can migrate easily from AQ to
Transactional Event Queues (TxEventQ).
TxEventQ is Oracle's next
generation messaging system that offers many benefits and features over
Advanced Queuing (AQ), like scalability, performance, key-based partitioning,
and Kafka compatibility with a Java client, TxEventQ natively supports JSON
payload, which makes event-driven microservices/application writing easier in
multiple languages - Java, JavaScript, PL/SQL, Python, etc.
The Cloud Premigration
Advisor Tool (CPAT) assists you with database migration, both on-premises and
in Oracle Cloud. It assesses the characteristics of the source database
for migration and determines whether the source database can be migrated
successfully to another Oracle AI Database. The JSON output from CPAT can
be read by tools and applications for further processing and reporting.
CPAT helps you to avoid
incompatibility issues in migrations. It helps you save time and effort in
planning your migration of on-premises and Oracle Cloud databases to
Oracle Autonomous AI Database.
Cloud operations is the
process of managing and optimizing cloud-based infrastructure, databases, and
services. Features in this category enhance the availability, monitoring,
maintenance, diagnosability, and security of cloud-based database deployments
and reliably guarantees mission-critical high availability and resiliency.
Administrators can
configure pluggable databases (PDBs) to operate in a new mode called hybrid
read-only. Hybrid read-only mode enables a PDB to operate as either read-write
or read-only, depending on the user who is connected to the PDB. For common
users, the PDB will be in read-write mode. For local users, the PDB will be
restricted to read-only mode.
Hybrid read-only mode
enables you to patch and maintain an application in a safe mode for open PDBs
without the risk of local users, including higher privileged ones, interfering
with the ongoing maintenance operation of the PDB.
Real-time SQL Monitoring
works independently and concurrently across multiple PDB containers in an
efficient manner. SQL statements, PL/SQL procedures and functions,
and DBOPs (Database Operations) are monitored at PDB and CDB levels. You can efficiently
query SQL Monitor reports across ad-hoc time ranges, DBIDs (internal database
identifiers), and CON_DBIDs (CDB identifiers). This data is also
accessible through SQL History Reporting.
Additionally, SQL
Monitoring data can be exported along with the Automatic Workload
Repository (AWR) and imported into another database or container for longer
term storage and analysis.
Real-time SQL Monitoring
is now supported per-PDB and CDB levels efficiently by default. As a PDBA
persona, you can get a more accurate view of the monitored SQL for your
application.
SQL Monitoring data can
be transported through the AWR framework to a different container or database
for longer term storage and offline analysis.
Administrators can define
a startup order or priority for each pluggable database (PDB) where the most
important PDBs are started first. The priority is applied to PDB opening order
and upgrade order as follows:
PDB
OPEN ALL statement This feature allows
critical PDBs to start and open before less important PDBs, reducing the time
for the critical applications to become usable.
Inter-Instance Resource
Management is a preemptive task scheduling and resource management capability
that enables fine-grained control over CPU resources across multiple Container
Databases, Pluggable Databases, and non-Database processes residing within
servers, hosts, or Virtual Machines, in clustered and non-clustered
environments. Inter-Instance Resource Management includes upper limits on CPU
resource consumption, as well as lower-bound guarantees to enable bursting for
multiple Pluggable Databases within a Container and multiple Container
Databases on a server, host, or Virtual Machine.
This feature enables
effective use of system resources with high-density database consolidation.
In environments that
contain many PDBs and require multiple DBMS_FS
requests to be processed in parallel, you can update the number OFS_THREADS to increase the number of DBMS_FS
requests executed in parallel. This increases the number of worker threads
executing the make, mount, unmount, and destroy operations on Oracle file
systems in Oracle AI Database. This will reduce the time needed to execute
parallel file system requests in environments with multiple PDBs.
This feature
significantly reduces the time required to perform parallel file system
requests in consolidation environments containing multiple PDBs.
You can control whether a
user or session is enabled for read-write operations, irrespective of the
privileges of the user that is connected to the database. The READ_ONLY
session applies to any type of user for any type of container. The READ_ONLY
user only applies to local users.
Providing the capability
to disable and re-enable the read-write capabilities of any user or session
without revoking and re-granting privileges provides you with more flexibility
to temporarily control the privileges of users or sessions for testing,
administration, or application development purposes. It also gives you a simple
way to control the read-write behavior within different parts of an application
that are used by the same user or session.
Application Continuity
uses database templates to checkpoint the session state, restore the session
state at the start of replay, and support session migration during planned
maintenance. Database templates restore server-side and client-visible session
states at the beginning of the Application Continuity replay, thus increasing
Application Continuity protection.
Application Continuity
with Database Templates broadens and simplifies the use of Application
Continuity to reduce planned maintenance-related downtime. It also enables the
migration of more sessions faster during unplanned outages, ensuring higher
levels of protection.
The process of upgrading
timezone data to reflect up-to-date Governmental Daylight Saving Time rules is
optimized, taking the actual data content of tables into account. Only tables
impacted by a Daylight Saving Time rule change will undergo a data change.
Optimizing the necessary
data changes for a Daylight Savings Time rule change significantly improves the
overall upgrade of timezone data to the absolute bare minimum to bring a
database up to the latest global timezone rules. The implicit analysis and
reduction of the data required to change significantly reduces the overall
timezone upgrade process and the resources needed.
To optimize the read and
write operations performed by database processes when you access files managed
through OFS or DBFS, specify the new db_access mount option for the dbms_fs.mount_oracle_fs procedure while mounting the file
system.
When you enable db_access,
both memory consumption and CPU usage reduces. The throughput increases while
performing read and write operations by database processes on the files managed
by OFS.
Smart Connection
Rebalance transparently reshuffles service-based connections based on real-time
performance monitoring across Oracle Real Application Clusters (Oracle RAC)
instances.
Smart Connection
Rebalance improves database performance by automatically moving sessions across
Oracle RAC database instances without needing manual intervention.
The smooth
reconfiguration feature reduces the brownout time caused by certain Oracle Real
Application Clusters (Oracle RAC) operations, such as nodes joining or leaving
an Oracle RAC cluster.
Smooth Reconfiguration of
Oracle RAC Instances ensures continuous availability of Oracle RAC services and
reduces brownout time for database instances running in an Oracle RAC database.
This project
introduces perPDB DataGuard. When DGPDB is configured on a
source/Primary database, there are validations that insure there is no
GoldenGate Capture pre-existing on the source. GoldenGate capture
sessions will be broken if a DGPDB is allowed and executes a role transition.
This project adds
support for coexistence of DGPDB and GoldenGate Capture. Changes/support will
be required in the LogMiner, redo transport, and Broker layers.
With adaptive result
cache object exclusion, the database decides to blocklist certain objects if
using the result cache is not beneficial for these objects, based on
statistical evidence such as the number of invalidations, the cost savings of
using result caching, and others. You have full control over the objects
considered for exclusion to ensure you can continue using result cache for all
your objects of interest.
Adaptive exclusion of
objects that don't benefit or even have a detriment impact on result caching
reduces the overall development and management workload for you. It can improve
the database performance out of the box.
Automatic external table
caching transparently caches frequently accessed external tables residing in
object storage, either completely or partially.
Automatic external table
caching boosts performance for external data by transparently caching
frequently accessed content, requiring no application changes. It delivers
faster, more efficient queries while the database handles caching and lifecycle
management automatically.
The Cloud Developer
packages provide built-in tools to connect, process, and integrate with cloud
services seamlessly. These packages, namely DBMS_CLOUD,
DBMS_CLOUD_PIPELINE, DBMS_CLOUD_REPO, DBMS_CLOUD_NOTIFICATION, and DBMS_CLOUD_AI collectively provide the following advantages:
Since Oracle AI Database
26ai, Release Update 23.7, DBMS_CLOUD_AI supports the Select AI feature,
which provides a SQL and PL/SQL interface to leverage Large Language Models
(LLMs) for natural language to SQL generation (NL2SQL). The complete Select AI
functionality is available on Oracle Autonomous AI Database, including NL2SQL
and retrieval augmented generation (RAG), among other AI-based features.
The Cloud Developer
packages enable businesses to work with data stored in the cloud, process
real-time data, and use advanced tools like AI, benefiting from cloud capabilities.
This approach helps simplify operations and supports specifically a mix of
on-premises and cloud systems.
Automatic error
mitigation automatically detects and repairs many severe compile-time
SQL exceptions that would otherwise cause SQL statements to fail. If a severe
internal error occurs during SQL compilation, the exception is trapped, and the
foreground processes will re-parse the statement to try and work around the
problem. If re-parse is successful, a SQL patch is used to persist the
workaround for future hard parses, and the session parsing the SQL statement
will proceed without interruption and without receiving an exception.
This
feature improves the robustness of your applications and its service
levels.
The DATA_OPTIONS=DISABLE_STATS_GATHERING parameter option disables
statistics gathering during an import job.
Statistics gathering can
have a performance impact on a large import operation. This parameter disables
statistics gathering during an import job. The parameter is also supported for
on-premises and user-managed cloud services import operations. Statistics
gathering is not automatic in non-autonomous database environments, but this
parameter can be useful. It controls whether Oracle Autonomous Database gathers
environment statistics automatically for DML operations, such as data loading
during an Oracle Data Pump Import job.
The Oracle Database Cloud
Backup Module for Azure Blob Storage enables Oracle AI Database to send backups
to and recover from Microsoft Azure Blob Storage. This backup module is
compatible with Oracle AI Databases deployed on-premises or on Azure cloud.
Support for writing backups to Azure Blob Storage for Oracle-managed database
services is not available. Database administrators can use RMAN commands, RMAN
scripts, and Oracle Enterprise Manager to perform backup and recovery
operations with Azure Blob Storage.
You can run Oracle AI
Databases in many different locations, and the backup module for Azure Blob
Storage provides on-premises and Azure virtual machine users with more
flexibility for backup storage locations.
Read-only tablespaces can
be moved to and from Oracle Object Storage transparently, storing portions of a
database on lower-cost storage in the Cloud.
Allowing to move
tablespaces to Oracle Object Storage enables a data lifecycle management
strategy, storing the data on the most cost-effective storage tier based on its
business value or access frequency.
Unified Memory is a
flexible and simple memory configuration for Oracle AI Databases that uses a
single parameter to control database memory allocations, reducing or
eliminating the need for system restart to change memory configurations.
Unified Memory is especially useful in multiple workload high density database
consolidation environments.
Unified Memory simplifies
memory management to run multiple workloads in a highly consolidated environment
with minimum disruption. It is easier to set the single parameter MEMORY_SIZE for configuring the database instance memory instead
of using separate parameters like SGA_TARGET and PGA_AGGREGATE_LIMIT.
This section describes
the new high availability features.
Oracle Data Guard
now provides the capability to decrypt redo operations in hybrid
cloud disaster recovery configurations where the cloud database is encrypted
with Transparent Data Encryption (TDE) and the on-premises database is not.
Hybrid disaster recovery
(DR) with Data Guard is now more flexible and easy to configure. Hybrid
disaster recovery for the Oracle AI Database allows you to expand outage and
data protection to take advantage of the automation and resources of Oracle
Cloud Infrastructure (OCI). By enabling the ability to quickly configure
disaster recovery in OCI, even in cases where on-premises databases might not
already be encrypted with Transparent Data Encryption (TDE), the steps required
to configure hybrid disaster recovery environments and prepare on-premises
databases for a DR configuration with cloud databases in OCI have been greatly
reduced.
The Data Guard command-line
(DGMGRL) now presents output in JSON format. Users can choose this structured
format to make data straightforward to process and reuse, moving beyond
plain-text output.
JSON-formatted output enables easy
integration with automation tools and scripting environments. Customers can
parse results programmatically, connect workflows, and boost productivity by
eliminating manual handling of plain-text results.
The new Oracle Data Guard
per Pluggable Database architecture provides more granular control over
pluggable databases, which can now switch and fail over independently. The
enhancements to the Oracle Data Guard per Pluggable Database include simplified
setup and validation, automatic addition of temporary files, improved
management and housekeeping, and target pluggable databases open for query
off-loading (Real-Time Query feature at the pluggable database level).
You can rely on Data
Guard protection while keeping the flexibility and high consolidation rates
that the multitenant architecture offers, reducing operational costs.
The Oracle Data Guard
broker property
PrimaryDatabaseCandidates
lists which databases can become primary during switchover or failover. This
property enforces finer control over role transitions, helping customers
prevent the activation of undesired databases. An optional override mode lets
you perform an emergency failover without changing the policy.
This feature increases
control and predictability in managed database environments. Organizations can
enforce business, regulatory, or operational rules about which databases may
act as the primary, reducing risk from operational errors. The override command
ensures critical failover remains possible during emergencies, while surfacing
appropriate warnings.
Application Continuity
and the draining of database sessions are now supported when performing a
rolling upgrade or applying non-rolling patches using DBMS_ROLLING.
Using Application
Continuity with DBMS_ROLLING, applications are continuously
available during the database upgrade process.
Transaction Guard is an
application-independent infrastructure that enables recovery of work from an
application perspective. With Transaction Guard, each logical transaction may
map to single or multiple server-side transactions. Persisting each logical
transactions, as part of a commit, introduces overheads in normal
transaction operation. Database Native Transaction Guard enhances existing
Transaction Guard and does not require persistence in a separate table.
Database Native
Transaction Guard does not incur extra redo generation or performance overhead
(extra writes are eliminated) and no client-side changes are required.
Flashback Time Travel can
automatically track and archive transactional changes to tables. Flashback Time
Travel creates archives of the changes made to the rows of a table and stores
the changes in history tables. It also maintains a history of the evolution of
the table's schema. By maintaining the history of the transactional changes to
a table and its schema, Flashback Time Travel enables you to perform
operations, such as Flashback Query (AS
OF and VERSIONS),
on the table to view the history of the changes made during transaction time.
Flashback Time Travel
helps to meet compliance requirements based on record-stage policies and audit
reports by tracking and storing transactional changes to a table, which has
also been made more efficient and performant in this release.
The Oracle Fleet Patching
and Provisioning (Oracle FPP) job scheduler now supports pausing and resuming
jobs, forcing jobs to start in a paused state, and pausing jobs between batches
in a chain execution and allows to tag jobs for easy querying.
Additional job scheduler
options provide you with more control over the patching execution. You can
pause jobs to verify executed jobs and resolve dependencies before resuming
jobs.
Oracle Data Guard
Fast-Start Failover has two additional properties for improved lag detection
and status changes. FastStartFailoverLagType sets the lag type that Fast-Start
Failover must consider when in Maximum Performance mode (APPLY
or TRANSPORT). FastStartFailoverLagGraceTime lets the configuration transition
to a pre-emptive LAGGING state that the observer can
acknowledge before reaching the actual lag limit, so the status can transition
immediately to TARGET OVER LAG
LIMIT without
waiting for the observer quorum.
The new properties for
the Maximum Performance protection mode further enhance Fast-Start Failover
capabilities and reduce the impact on application transactions for status
changes requiring the observer quorum.
Using the Oracle Database
Configuration Assistant (Oracle DBCA) and facilitating Oracle�s Automatic
Storage Management or Oracle�s Advanced Cluster File System, you can now
quickly create a Standard Edition High Availability Oracle AI Database fully
configured for automatic failover.
A Standard Edition High
Availability Oracle AI Database can now be created very easily with more
automation, eliminating manual steps and the associated complexity.
Oracle Real Application
Clusters (Oracle RAC) rolling patches framework enables you to apply certain
non-rolling fixes in a rolling fashion. Fixes that you implement using this
framework are disabled by default. You can choose to enable these fixes after
all the nodes are patched successfully.
Oracle RAC two-stage
rolling updates reduce the need for downtime to apply non-rolling patches.
However, not all non-rolling fixes can be applied in Oracle RAC rolling
fashion. With this feature, the number of Oracle RAC non-rolling patches is
significantly reduced.
Transaction Guard support
for DBMS_ROLLING ensures continuous application
operation during the switchover issued by DBMS_ROLLING
to Transient Logical Standby. The procedure uses the last commit outcome of
transactions part of in-flight sessions during a switchover-related outage (or
caused by an error/timeout) to protect the applications from duplicate
submissions of the transactions on replay.
Application Continuity
supported by Transaction Guard during database upgrades using DBMS_ROLLING ensures that commit outcomes are guaranteed across
the entire upgrade process.
The General Purpose
Cluster is a new cluster deployment that requires minimum network and storage
configuration and supports applications that benefit from
managed server restarts and failover capabilities. Oracle Grid Infrastructure
installer provides a streamlined option to configure a
general-purpose cluster in either interactive or silent mode.
This feature increases
productivity and reduces the required deployment time by simplifying
deployment requirements.
Local Rolling Database
Maintenance creates a new local database home and starts a second instance of
the same database from the new home on the same server, allowing you to perform
rolling patching and maintenance operations locally on one node of a multi-node
Oracle Real Application Clusters (Oracle RAC) or Oracle RAC One Node cluster.
Local Rolling Database
Maintenance provides uninterrupted database availability during maintenance
activities (such as patching) for Oracle RAC and Oracle RAC One Node databases.
This feature significantly improves the availability of your databases while
limiting the impact on other nodes in the cluster.
Single-Server Rolling
Database Maintenance creates a new local database home and starts a second
instance of the same database from the new home on the same server, allowing
you to perform rolling patching and maintenance operations on a
single server hosting an Oracle RAC One Node or Real Application Clusters
(Oracle RAC) database.
Single-Server Rolling
Database Maintenance provides database availability during maintenance
activities (such as patching) on a single server hosting an Oracle RAC or
Oracle RAC One Node database. This feature significantly improves the
availability of your single-node databases without expanding them to a
multi-node cluster and adding support for shared storage.
Oracle AI Database 26ai
is packed with new features that help you reduce risk, better secure your data,
and achieve regulatory compliance objectives. From marquee new features like
the new SQL Firewall through standards updates like TLS 1.3 support to small
(but important) changes like increasing the maximum length of a password from
30 bytes to 1024 bytes, you�ll find this newest release a step up from your
older database versions.
A new feature of Oracle
Database Vault, SQL Firewall is built into Oracle AI Database. SQL Firewall
inspects all incoming SQL statements and ensures that only explicitly
authorized SQL is run. When licensed, you can use SQL Firewall to control which
SQL statements are allowed to be processed by the database. You can restrict
connection paths associated with database connections and SQL statements.
Unauthorized SQL can be logged and blocked. Because SQL Firewall is embedded in
Oracle AI Database, it cannot be bypassed. All SQL statements are inspected,
whether local or network, or encrypted or clear text. It examines top-level
SQL, stored procedures and the related database objects. Consult Table 1-11 of
the Oracle Audit Vault
and Database Firewall Licensing Information for more information on
licensing requirements for SQL Firewall.
SQL Firewall provides
real-time protection against common database attacks by restricting database
access to only authorized SQL statements or connections. It mitigates risks
from SQL injection attacks, anomalous access, and credential theft or abuse.
SQL Firewall uses session
context data such as IP address, operating system user name, and operating
system program name to restrict how a database account can connect to the
database. This helps mitigate the risk of stolen or misused application service
account credentials. A typical use case for SQL Firewall is for application
workloads.
You can use SQL Firewall
in both the root and a pluggable database (PDB).
Transport Layer Security
(TLS) version 1.3 is supported in Oracle AI Database 26ai. TLS 1.3 is the
latest and most secure TLS protocol to protect network connections to and from
Oracle AI Database.
Because TLS 1.3 handles
initial session setup more efficiently than prior TLS versions, users moving to
TLS 1.3 should see improvements in TLS performance, particularly for
applications that frequently connect and reconnect to the database. TLS 1.3
also implements newer, more secure cipher suites that improve confidentiality
of data in transit.
The behavior of the SSL_SERVER_DN_MATCH parameter has changed.
Previously, Oracle AI Database performed the DN check only with the database
server certificate, and both the HOSTNAME and the SERVICE_NAME setting in the connect string could be used for a
partial DN match.
Oracle AI Database 26ai
checks both the listener and server certificates. In addition, the SERVICE_NAME setting in the connect string is not used to check
during a partial DN match. The HOSTNAME setting can still be used for
partial DN matching with the certificate DN and subject alternative name (SAN),
on both the listener and server certificates.
When set to TRUE,
the SSL_ALLOW_WEAK_DN_MATCH parameter reverts SSL_SERVER_DN_MATCH to the behavior earlier than
Oracle AI Database 26ai and enables DN matching to only check the database
server certificate (but not the listener) and enable the service name to be
used for partial DN matching.
DN matching with both the
listener and server certificates provides better security to ensure that the
client is connecting to the correct database server. The service name setting
is also removed from SSL_SERVER_DN_MATCH for better security and partial
DN matching can still be performed with the HOSTNAME
connect string parameter with the he certificate DN and subject alternative
name (SAN) matching.
The SSL_ALLOW_WEAK_DN_MATCH, though new to this release, is
marked as deprecated because it is considered a temporary solution to enable
the behavior of SSL_SERVER_DN_MATCH prior to Oracle AI Database 26ai.
The Transport Layer
Security (TLS) configuration between the database client and server has been
simplified with streamlined parameters, performance improvements, and an
additional parameter to find a wallet. Older TLS protocols have also been
removed.
These changes improve
security and make it easier to implement TLS.
An Oracle AI Database
client is no longer required to provide a wallet to hold well-known CA root
certificates if they are available in the local system. The Oracle AI Database
wallet search order determines the location (Windows (Microsoft Certificate Store)
or Linux) of these certificates in the local system.
Transport Layer Security
(TLS) requires either one-way authentication or two-way authentication. In
one-way TLS authentication, which is commonly used for HTTPS connections, you
will no longer need to install and configure a client wallet to hold the
server's CA certificate as long as it is already available in the local system.
If the server's CA certificate is not installed in the local systems, client
wallet is still required. Starting in this release, you no longer need to
install and configure a wallet to hold a well-known root certificate if it is
already available in the local system.
This feature greatly
simplifies the Oracle AI Database client installation and the use of TLS
protocol to encrypt Oracle AI Database client-server communications.
You can block the use of
deprecated cipher suites by setting the SSL_ENABLE_WEAK_CIPHERS sqlnet.ora parameter to FALSE.
Removing the ability to
use older, less secure cipher suites improves protection for data in-motion
between the database.
Transparent Database
Encryption (TDE) tablespace encryption now supports Advanced Encryption
Standard (AES) XTS (XEX-based mode with ciphertext stealing mode) in CREATE TABLESPACE statements. In previous releases, TDE used AES-CFB
cipher mode.
AES-XTS provides improved
security and better performance, especially on platforms where TDE can take
advantage of parallel processing and specialized instructions built into
processor hardware.
The default encryption
algorithm for both TDE column encryption and TDE tablespace encryption is now
AES256. The previous default for TDE column encryption was AES192. For TDE
tablespace encryption, the default was AES128.
The decryption libraries
for the GOST and SEED algorithms are deprecated. New keys cannot use these
algorithms. The encryption libraries for both of these libraries are
desupported.
The column encryption
mode is now Galois/Counter mode (GCM) instead of cipher block chaining (CBC),
and the tablespace keys are now used in tweakable block ciphertext stealing
(XTS) operating mode instead of cipher feedback (CFB).
The Oracle Recovery
Manager (RMAN) integrity check for column encryption keys now uses SHA512
instead of SHA1.
The keys for Oracle RMAN
and column keys are now derived from SHA512/AES for key generation. In previous
releases, they used SHA-1/3DES as a pseudo-random function.
These enhancements enable
your Oracle AI Database environment to use the latest, most secure algorithms
and encryption modes.
A local auto-login wallet
is now more tightly bound to the host where it was created or modified (both
bare metal and virtual). The local auto-login process is also more secure, does
not require additional deployment requirements, and does not require root
access.
Local auto-login wallets
are more secure now and support both bare metal and virtual environments.
This enhancement also
applies to Transparent Data Encryption (TDE) local auto-login keystores.
The following updates
have been made to the DBMS_CRYPTO package:
Customers can use the
latest cryptographic features with Oracle AI Database.
You now can use the DB_RECOVERY_AUTO_REKEY initialization parameter for
Oracle Data Guard environments. DB_RECOVERY_AUTO_REKEY controls whether an Oracle Data
Guard standby database recovery operation automatically performs the
corresponding tablespace rekey when it encounters a redo that says the primary
database has performed a tablespace rekey operation.
This feature is useful
for standby deployments with large tablespaces whose users must perform an
online TDE conversion.
You can create unified
audit policies to audit individual columns in tables and views.
This feature enables
you to configure more granular and focused audit policies, and ensures
that auditing is selective enough to reduce the creation of unnecessary audit
records, and effective enough to let you meet your
compliance requirements.
You can control how
privileged users can grant and revoke the Oracle AI Database AUDIT_ADMIN and AUDIT_VIEWER roles by using Oracle Database
Vault APIs. Database Vault blocks direct modification of the database audit
tables except through the DBMS_AUDIT_MGMT PL/SQL package by authorized
users. A new mandatory default realm (Oracle Audit Realm) protects the AUDSYS
schema and audit-related objects in the SYS
schema.
This new Database Vault realms
simplifies auditing database vault, consolidating the privileges required for
auditing into one authorization mechanism. In addition to facilitating the
granting of audit-related privileges to the user, this enhancement provides
greater separation of duties for managing auditing in an Oracle Database Vault
environment.
You can log into Oracle
AI Databases using your Microsoft Azure Active Directory (Azure AD) single
sign-on OAuth2 access token. This feature has
been backported to Oracle Database 19c release 19.16 and later, but not for
Oracle Database 21c.
New features for Oracle
AI Database 26ai include support for Azure AD v2 tokens and retrieving the
tokens directly with the Oracle AI Database clients. Use of scripts to retrieve
tokens for end-users will not be necessary when using the OAuth2 interactive
flow.
This multi-cloud feature
integrates authentication and authorization between Azure AD and Oracle AI
Databases.
ODP.NET can log into
Oracle AI Databases using a Microsoft Azure Active Directory (Azure AD) OAuth
2.0 access token. Users can sign-on once with Azure AD, acquire the token, and
access their on-premises and cloud-based Oracle AI Databases. This feature is
available in ODP.NET Core and managed ODP.NET.
This multicloud
capability eases authentication and authorization between Azure AD and Oracle
AI Databases by simplifying user access and management.
Oracle AI Database now
supports passwords up to 1024 bytes in length. In previous releases, the
password length and the secure role password length could be up to 30 bytes.
Increasing the password
length supports an industry-wide trend for stronger authentication. In cases
where passwords must be used, the increased length permits passwords that are
more difficult to guess.
Passwords for database
user authentication can now be as long as 1024 characters.
This feature
fosters increased authentication security for Java applications in
Cloud and On-premises environments.
Oracle Data Pump can
protect export files with encryption passwords of up to 1024 bytes long.
Oracle Data Pump enhances
security by supporting encryption passwords of up to 1024 bytes long.
Oracle Call Interface
(OCI) and Oracle C++ Call Interface (OCCI) now support passwords for database user
authentication up to 1024 bytes long.
This feature allows
longer passwords to be used to improve security. It also aids database use with
tools that generate long passwords.
Oracle AI Database
supports MIT Kerberos library version 1.21.2, and provides cross-domain support
for accessing resources in other domains.
This Kerberos enhancement
improves security and allows Kerberos to be used in more Oracle AI Database
environments.
RADIUS is frequently used
to provide multi-factor authentication (MFA) for Oracle AI Database. Oracle AI
Database 26ai now supports the RFC 6613 and 6614 guidelines for RADIUS and
implements TCP over Transport Layer Security (TLS) by default. This enhancement
introduces new RADIUS-related sqlnet.ora parameters to support the new
standards. The enhancement also deprecates several RADIUS-related sqlnet.ora
parameters that are no longer needed to support the new standards.
This update to RADIUS
standards support improves security for customers using RADIUS-based
authentication.
UTL_HTTP is extended to
support both SHA-256 and SHA-512/256 for digest authentication, to ensure
forward compatibility.
UTL_HTTP can be seen as
an API for client-side HTTP access, much like a standard browser. Support for
both SHA-256 and SHA-512/256 for digest authentication enables UTL_HTTP to be
at par with other standard browsers.
Oracle XDB HTTP protocol
server now supports digest authentication SHA512 authentication, which is a
more secure digest algorithm than MD5.
This feature improves
security when using Oracle XDB from the web.
Oracle Call Interface
(OCI) and Oracle Database Instant Client now can retrieve a Microsoft Entra ID
(formerly Azure AD) OAuth2 token directly from Entra ID
instead of relying on a separate script or process to retrieve the token first.
This design improves the
interactive flow between the database server and the client when users connect
to the database (for example, with SQL*Plus).
This enhancement
simplifies the configuration that an end-user must perform in order to retrieve
tokens. In previous releases, the end-user had to run a script to get the token
from Entra ID before starting SQL*Plus or any other OCI utilities. Now, the
token retrieval is part of OCI. This enhancement is similar to recent enhancements
with the JDBC-thin and ODP.NET core and managed clients.
Starting with Oracle Grid
Infrastructure 26ai, you can specify custom security certificates for
authentication between Oracle Fleet Patching and Provisioning (Oracle FPP) server
and clients. By default, Oracle FPP uses SSL/TLS certificates. You can use any
security certificate assigned by a Certificate Authority of your choice.
Choosing custom security
certificates enables you to meet stringent security policies and regulations
set by your organization.
The Microsoft Entra ID
(previously Azure AD) integration is now available to all Oracle AI Database
users regardless of the server operating system platform.
In addition to the newly
supported AIX, Solaris, and HPUX platforms, Linux and Windows are still
supported. This feature is supported with the Oracle Cloud Infrastructure (OCI)
full client and instant clients on Windows and Linux only.
You can enhance Oracle AI
Database security by enabling multi-factor authentication for users. You can
use push notifications through the Cisco Duo or Oracle Mobile Authenticator app
or combine a username and password with PKI (Public Key Infrastructure) certificate-based
authentication.
Multi-factor
authentication is a required security requirement for many databases,
especially if the database holds sensitive data.
The orapki
command line utility now enables you to store alias names and thumbprint
signatures in an Oracle wallet.
These enhancements enable
users to do the following:
This enhancement affects
the orapki wallet add, orapki wallet remove, and orapki wallet display commands. The benefit of this
feature is the simplification of managing wallets and selecting certificates
through new the thumbprint, alias, and serial number parameters.
The benefit of this
feature is the simplification of managing wallets and selecting certificates
through new the thumbprint, alias, and serial number parameters.
mkstore features have been incorporated
into the orapki command line utility to simplify
the management of Oracle AI Database wallets, certificates, and secrets.
The new commands in orapki
support the following capabilities of mkstore:
The capabilities are
supported with the orapki
secretstore
command.
The mkstore
utility has been deprecated. Oracle recommends that you use orapki instead.
Oracle AI Database
supports granting privileges on schemas (in addition to the existing object,
system, and administrative privileges).
This feature improves
security by simplifying authorization for database objects, especially for
schemas that frequently add new objects. Instead of granting broad system level
(* ANY) privileges that apply to the entire database, privileges can now be
granted at the individual schema level.
A new schema, LBAC_TRIGGER, is introduced to own the internal triggers that
were previously owned by the LBACSYS schema. You can migrate existing LBACSYS
triggers to this new schema.
Both the LBACSYS
and LBAC_TRIGGER schemas are Oracle-maintained and
dictionary-protected.
This feature improves
security when using the Oracle Label Security option.
Oracle AI Database
schemas can have data dictionary protection with additional separation of
duties protection for SYSOPER, SYSASM,
SYSBACKUP, SYSKM,
SYSRAC, and SYSDG.
Oracle schemas provide
critical functionality for Oracle AI Database features. By enabling these
schemas to have data dictionary protection with additional separation of
duties, you can prevent inadvertent and malicious changes within these schemas
that could endanger Oracle AI Database functionality.
New roles OGG_CAPTURE, OGG_APPLY, OGG_APPLY_PROCREP, XSTREAM_CAPTURE, XSTREAM_APPLY have been created for granting appropriate capture
and apply privileges to the GoldenGate and XStream administrators. These new
roles replace the functionality in the procedures of the DBMS_GOLDENGATE_AUTH and DBMS_XSTREAM_AUTH packages, which are now de-supported.
This feature simplifies
administrative tasks.
You can use two new
Oracle Database Vault utility functions to find information about client hosts
and IPs. These new utility functions are as follows:
DBMS_MACUTL.CONTAINS_HOST
DBMS_MACUTL.IS_CLIENT_IP_CONTAINED
These utility functions
enable you to conveniently check if an IP address (or a host) is contained in a
domain (or subnet range). They are useful for configuring rules and rule sets.
You now can use two
Oracle Database Vault APIs to control system level tracing, which applies to
all database sessions. These new APIs are as follows:
DBMS_MACADM.SET_TRACE_LEVEL
DBMS_MACUTL.GET_TRACE_LEVEL
This enhancement enables
users who have been granted the DV_ADMIN role to enable or disable tracing
for all database sessions. In previous releases, this user needed the ALTER SYSTEM and the ALTER
SESSION system
privileges to perform this task, in addition to the DV_ADMIN
role. The ALTER SYSTEM system procedure for tracing is
still supported. The enhancement also provides the DBMS_MACUTL.GET_DV_TRACE_LEVEL function, which returns the trace
level that has been set for the current database session. This trace level can
have been set by ALTER SYSTEM, ALTER SESSION, or DBMS_MACADM.SET_DV_TRACE_LEVEL.
When configuring Oracle
Database Vault, you may now omit parameters in the following cases:
The procedures that are
affected are as follows:
DBMS_MACADM.CREATE_COMMAND_RULE
DBMS_MACADM.CREATE_CONNECT_COMMAND_RULE
DBMS_MACADM.CREATE_FACTOR
DBMS_MACADM.CREATE_POLICY
DBMS_MACADM.CREATE_REALM
DBMS_MACADM.CREATE_RULE
DBMS_MACADM.CREATE_RULE_SET
DBMS_MACADM.CREATE_SESSION_EVENT_CMD_RULE
DBMS_MACADM.CREATE_SYSTEM_EVENT_CMD_RULE
DBMS_MACADM.UPDATE_COMMAND_RULED
DBMS_MACADM.UPDATE_CONNECT_COMMAND_RULE
DBMS_MACADM.UPDATE_FACTOR
DBMS_MACADM.UPDATE_POLICY_STATE
DBMS_MACADM.UPDATE_REALM
DBMS_MACADM.UPDATE_RULE
DBMS_MACADM.UPDATE_RULE_SET
DBMS_MACADM.UPDATE_SESSION_EVENT_CMD_RULE
DBMS_MACADM.UPDATE_SYSTEM_EVENT_CMD_RULE
Omitting parameters for
default behaviors while creating or updating realms, rules, command rules,
factors, and policies streamlines the process, allowing administrators to
complete tasks more efficiently and reducing the opportunity for errors.
You can now log in to
additional Oracle Cloud Infrastructure (OCI) DBaaS databases by using an
Identity and Access Management (IAM) password or a token-based authentication.
It's possible to log in to these databases by using these IAM credentials
from tools, such as SQL*Plus or SQLcl.
This feature improves
security through centralized management of credentials for OCI DBaaS database
instances.
ODP.NET supports Oracle
Identity and Access Management (IAM) cloud service for unified identity across
Oracle cloud services, including Oracle Cloud Database Services. ODP.NET can
use the same Oracle IAM credentials for authentication and authorization to the
Oracle Cloud and Oracle cloud databases, now with IAM SSO tokens. This feature
is available in ODP.NET Core and managed ODP.NET.
This capability allows
single sign-on and for identity to be propagated to all services Oracle IAM
supports including federated users via Azure Active Directory and Microsoft
Active Directory (on-premises). A unified identity makes user management and
account management easier for administrators and end users.
Oracle AI Database and
client drivers now support passwords up to 1024 bytes in length.
The Oracle AI Database
and client password length has been increased to 1024 bytes, up from 30 bytes,
to allow users to set longer passwords if needed. The maximum number of
characters is based on the character set used since some characters are larger
than one byte.
Oracle AI Database
enables queries and DMLs on objects hosted on a different database. When
objects are updated on a remote database, the transaction on the source
database ends up becoming a distributed transaction. If a distributed
transaction fails, a database background process (RECO) periodically tries to
re-establish contact, with the yet-to-be-notified subordinates and pushes the
final outcome to those remote databases.
Secure Distributed
Transaction Recovery Background Process (RECO) provides additional security for
the RECO process.
You can use Oracle
Connection Manager (CMAN) to limit the number of new connections allowed from
an IP address in the specified unit of time. This IP rate limit feature enables
you to protect your database against potential denial-of-service (DoS) attacks.
Malicious clients can
send excessive connection requests to the server node. This can saturate the
capacity of CMAN to handle new connections per second, and thus cause DoS
attacks on your database. Using this security feature, you can prevent these
types of attacks by detecting such clients early and rejecting those
connections.
This release includes
many enhancements to Oracle Data Redaction, such as the optimization of
existing capabilities and the removal of previous limitations.
These enhancements to
Oracle Data Redaction improve the overall experience.
You can log into
additional Oracle AI Database environments using your Microsoft Azure Active
Directory (Azure AD) single sign-on OAuth2 access
token. The previous release supported Azure AD integration for Oracle
Cloud Infrastructure (OCI) Autonomous Database (Shared Infrastructure). This
release has expanded Azure AD integration to support on-premises Oracle
Database 19c release 19.16 and later. The project adds the OCI attributes
needed to supply the bearer token for connection creation.
This multi-cloud feature
integrates authentication and authorization between Azure AD and Oracle AI
Databases in Oracle Cloud Infrastructure and on-premises.
In Oracle AI Database
26ai, Oracle digitally signs the installation archive files with Oracle
certificates.
Oracle digitally signs
the installation archive files to allow customers to ensure the integrity of
the packages before deploying them in their environments.
This section describes
the new OLTP and core database features.
True Cache is an
in-memory, consistent, and automatically managed cache for Oracle AI Database.
It operates similarly to an Active Data Guard readers farm, except that True
Cache is mostly diskless and is designed for performance and scalability, as
opposed to disaster recovery. An application can connect to True Cache directly
for read-only workloads. A general read-write Java application can also simply
mark some sections of code as read-only, and the 26ai JDBC Thin driver can
automatically send read-only workloads to configured True Caches.
Today, many Oracle users
place a cache in front of Oracle AI Database to speed up query response time
and improve overall scalability. True Cache is a new way to have a cache
in front of Oracle AI Database. True Cache has many advantages including
ease of use, consistent data, more recent data, and automatically managed
cache.
Directory-based sharding
is a type of user-defined sharding in Oracle Globally Distributed
Database where the location of data records associated with a sharding key is
specified dynamically at the time of insert based on user preferences. The key
location information is stored in a directory which can hold a large set of key
values in the hundreds of thousands. With directory-based sharding, you have
the freedom to move individual key values from one location to another, or make
bulk movements to scale up or down, or for data and load balancing.
Directory-based sharding
method improves the user-defined sharding model and provides linear
scalability, complete fault isolation, and global data distribution for the
most demanding applications.
Raft replication provides
built-in replication for Oracle Globally Distributed Database without requiring
configuration of Oracle GoldenGate or Oracle Data Guard. Raft replication is
logical replication with consensus-based (RAFT) commit protocol, which enables
declarative replication configuration and sub-second failover.
RAFT Replication helps
simplify management, improves availability and SLA delivery, as well as
optimizes hardware utilization for sharded database environments.
When you update the
sharding key value on a particular row of a sharded table, the data with that
key value might be mapped to a different partition or shard than where it
currently resides. Oracle Globally Distributed Database now handles moving the
data to the new location, whether it is in a different partition on the same
shard or on a different shard.
This features makes data
movement between partition or shards seamless when sharding key value update
occurs due to various reasons, for example, a move to another country or change
in roles.
System MONitor (SMON) is
a background process responsible for transaction recovery. Transaction
Quarantine can now automatically quarantine the recovery of problematic
transactions while keeping the database open, allowing SMON to proceed with the
recovery of the other transactions. Alerts and diagnostic information are
provided to the DBA or operator so that they can review and resolve the
quarantine while other database operations continue unaffected.
The benefit of
transaction quarantining is increased fault tolerance and high availability of
the database. The database stays up and running and continues processing
transactions while the quarantine is being resolved.
RMAN is now compatible
with immutable OCI Object Storage using locked retention rules, which prevents
deletion or modification of backups.
To help organizations
meet ransomware protection or strict regulatory requirements for record
management and retention, RMAN now prevents anyone, even an administrator, from
deleting or modifying backups in OCI Object Storage.
Oracle Globally
Distributed Database enables refresh rate control for individual duplicated
tables. Each duplicated table can have a separate refresh rate which is defined
either at its creation or by the ALTER
TABLE
statement.
This feature helps
optimize the use of resources by customization of refresh rates for individual
duplicated tables.
Globally Distributed
Database allows a global partitioned index on the sharding key when the sharded
table is sub-partitioned. You can create a primary key/unique indexes on
sharded tables that are composite partitioned without having to include
sub-partition keys.
The benefit of this
feature is that it removes the restriction on the primary key columns when the
sharded table is sub-partitioned, as in the composite sharding method.
This feature enables the
Java connection pool (UCP) to receive ONS events about data in a
chunk being split and moved across partition sets, and then update the sharding
topology appropriately.
This feature
furnishes high availability to Java applications using sharded databases.
In previous releases, you
could store flashback database logs only in the fast recovery area. Now you can
optionally designate a separate location for flashback logging. For example, if
you have write-intensive database workloads, then flashback database logging
can slow down the database if the fast recovery area is not fast enough. In
this scenario, you can now choose to write the flashback logs to faster disks.
Using a separate destination also eliminates the manual administration to
manage the free space in the fast recovery area.
Managing flashback
database logs outside the fast recovery area lowers the operational costs
related to space management and guarantees the best performance for workloads
that are typically impacted by flashback logging on traditional storage.
With the Oracle Globally
Distributed Database composite sharding method, data is organized into
different shardspaces, allowing you to differentiate subsets of data; however,
in the past, any automatic chunk moves for load balancing occurred within a
shardspace. Now, Oracle Globally Distributed Database lets you move data chunks
between existing shardspaces, or move some data to a newly added shardspace.
You can arrange sharded
data for your new business needs, such as providing new levels of services or
resources for certain customers, or move customers from one class of service to
another while maintaining regional data sovereignty.
Oracle Globally
Distributed Database introduces a new kind of duplicated table that is
synchronized on the shards �on-commit� on the shard catalog. The rows in a
duplicated table on the shards are synchronized with the rows in the duplicated
table on the shard catalog when the active transaction performing DMLs on the
duplicated tables in the shard catalog is committed.
This features enables
efficient and absolute data consistency and synchronization for duplicated
tables, across all shards at all times.
For Oracle Globally
Distributed Database sharded databases using the composite sharding method, two
new ALTER TABLE operations enhance partition set
maintenance. Previously, partition set operations did not support specifying
tablespace sets for child and reference-partitioned tables that are affected
due to add and split partition set operations. MOVE PARTITIONSET lets you move a whole partition set from one
tablespace set to another, within the same shardspace. MODIFY PARTITIONSET lets you add values to the list
of values of a given partition set.
These new operations enhance
resharding capability. MOVE
PARTITIONSET
gives you the control to move all subpartitions of a given table to another
tablespace set, within a given shardspace. You can also specify separate
tablespace sets for LOBs and subpartitions. MODIFY PARTITIONSET extends the add list values
feature of partitions to partition sets.
Oracle Data Pump adds
support for sharding DDL in the API dbms_metadata.get_ddl(). A new transform parameter, INCLUDE_SHARDING_CLAUSES, facilitates this support. If
this parameter is set to true, and the underlying object
contains it, then the get_ddl() API returns sharding DDL for
create table, sequence, tablespace and tablespace set. To prevent sharding
attributes from being set on import, the default value for INCLUDE_SHARDING_CLAUSES is set to false.
Oracle Data Pump supports
sharding migration with support for sharding DDL. You can migrate
sharding objects to a target database based on source database shard
objects.
Coordinated backup and
restore functionality in Oracle Globally Distributed Database has been extended
to include the following:
The benefits of this
functionality are:
PL/SQL functions are
enhanced with the keyword SHARD_ENABLE to allow these functions to be
referenced in Oracle Globally Distributed Database cross-shard queries. With
the new keyword, the query optimizer takes the initiative to push the execution
of the PL/SQL function to the shards.
This feature
significantly improves performance for PL/SQL functions in sharded database
environments.
The Oracle Globally
Distributed Database query coordinator runs cross-shard updates and inserts in
parallel on multiple shards.
This feature improves
cross-shard DML performance by running updates and inserts in parallel rather
than serially.
While processing GSDSCTL ADD SHARD, ADD GSM, and DEPLOY
commands, Oracle Globally Distributed Database runs a series of checks to make
sure that there is no potential environmental issue.
This feature proactively
avoids common pitfalls to reduce time taken to complete a sharded database
deployment.
If a transaction does not
commit or roll back for a long time while holding row locks, it can potentially
block other high-priority transactions. This feature allows applications to
assign priorities to transactions and for administrators to set timeouts for
each priority. The database will automatically roll back a lower priority
transaction and release the row locks held if it blocks a higher priority transaction
beyond the set timeout, allowing the higher priority transaction to proceed.
Priority Transactions
reduces the administrative burden while also helping to maintain transaction
latencies and SLAs on higher priority transactions.
RMAN encrypted backups
now default to AES256 encryption algorithm. RMAN will
continue to support restore using existing backups created with AES128
or AES192 encryption algorithms. You may
also choose to create new backups using AES128
by changing the default AES256 setting. This default change
applies to BACKUP BACKUPSET command and the ALLOCATE CHANNEL command.
To strengthen the
security of encrypted backups from being decrypted by malicious users, RMAN
encrypted backups now default to the AES256 encryption standard.
RMAN now includes easier
standby database registration for Oracle Data Guard, better fault tolerance and
optimization for Oracle Real Application Cluster (Oracle RAC), enhanced
diagnosability which automatically gathers information to help identify issues,
and updates to mitigate bottlenecks and pause sessions during recovery catalog
upgrades.
RMAN operations are now
easier and more resilient for highly available Oracle environments with less
complex backup registration, automatic diagnostic gathering, and fewer failures
when performing maintenance activities.
Using RMAN to migrate
databases across different operating system platforms has been streamlined and
includes support for databases encrypted with Transparent Data Encryption (TDE)
and multi-section backups. New command options allow existing RMAN backups to
be used to transport tablespaces or pluggable databases to a new destination
database with minimal downtime.
Migrations using RMAN are
now easier, faster, and require fewer steps to execute. The new capabilities
enable a simple and straightforward migration process, minimizing downtime for
your applications, reducing risk, and increasing productivity.
The Oracle Home directory
now includes the database version compatible libraries (SBT_LIBRARY) for Zero Data Loss Recovery Appliance, OCI Object
Storage and Amazon S3. You can now configure RMAN to directly access libraries
from the Oracle Home directory using an alias. For example, if the backup
destination is OCI Object Storage, you only have to specify the alias name oracle.oci
for the SBT_LIBRARY parameter. When RMAN attempts to
backup to Object Storage, it uses the specified alias to access the SBT library
used for backup cloud service from the Oracle home directory.
The RMAN storage
libraries are now included with the database, eliminating the need to download
and install additional software and ensuring that you have all the necessary
components to immediately start backing up and restoring from Zero Data
Loss Recovery Appliance, OCI Object Storage, or Amazon S3.
Earlier versions of
blockchain tables supported only system chains. A system chain (one of the 32
chains per instance) is randomly chosen by Oracle for every new row inserted
into a blockchain table.
A user chain is a chain
of rows based on a set of up to three user-defined columns of type NUMBER,
CHAR, VARCHAR2,
and RAW. For example, consider a
blockchain table created for tracking banking transactions (withdrawals,
deposits, transfers) associated with various accounts. Assume there is a column
called ACCOUNTNO in the blockchain table for
account numbers. Each transaction inserts a new entry into this blockchain
table for some account number. A user chain can be associated with every unique
value in ACCOUNTNO. If there are a total of 100
different account numbers, there can be at most 100 user chains. You can then
run a verification procedure only on a chain for a specific ACCOUNTNO,
providing greater data isolation. This feature allows you to create
user chains for rows in blockchain tables based on version columns even if they
are split across system chains.
Multiple user chains
increase the flexibility of applying blockchain tables and their
verification procedures to make it easier to leverage tamper-resistant
tables in your applications.
The blockchain
table row version feature allows you to have multiple
historical versions of a row that is maintained within a blockchain
table corresponding to a set of user-defined columns. A view <bctable>_last$ on top of the blockchain table
allows you to see just the latest version of a row.
This feature allows
you to guarantee row versioning when using
tamper-resistant blockchain tables in your application.
Flashback Data Archive
History tables are now blockchain tables. This feature allows changes to one or
more regular user tables to be tracked in a blockchain table maintained by
Oracle AI Database as part of the Flashback Data Archive. Each change in a
regular table will be added to the blockchain log history table as a separate
row within a cryptographic hash chain maintained by the blockchain table. You
can verify the data and chain integrity in a Flashback Data Archive
Blockchain Log History table using the built-in verification procedures (DBMS_BLOCKCHAIN_TABLE.verify_rows) or through an external
verification, including a continuous verification process illustrated by a
sample provided in https://github.com/oracle/blockchain-table-samples.
This feature allows you
to record changes to regular user tables in a cryptographically secure and
verifiable fashion.
This feature allows
evolution of Blockchain and Immutable Tables, namely it allows columns to be
added and dropped while maintaining the current data, including that in dropped
columns for continuity of crypto-hash chains.
As applications evolve
you may need to modify existing tables by adding or dropping columns. In this
release, you can easily add or drop columns in previously created Blockchain or
Immutable tables. Any rows prior to a column deletion will maintain the data in
these columns in order to preserve the integrity of the crypto-hash chains and
allow the verification procedures to work across the entire table.
You can request a database
countersignature at the time of signing a row. In addition to recording the
countersignature and its metadata in the row, the countersignature and the signed_bytes are returned to the caller. The caller can then save
the countersignature and signed_bytes in another data store, such as
Oracle Blockchain Platform, for non-repudiation purposes.
A countersignature can
provide user additional guarantees that data has been securely stored in the
blockchain table.
A delegate is an
alternate user who's allowed to sign rows inserted by the primary
user. This feature allows a delegate to sign rows in an immutable or
blockchain table on behalf of another user. A delegate�s signature is accepted
only if the signature can be verified using the public key in the delegate�s
certificate, which has been added to the dictionary table.
A delegate signer can be
used when users are not able to sign the rows they created and they trust their
delegate.
Blockchain or immutable tables
with idle retention set to a sufficiently large value cannot be dropped until
the newest row of the table becomes very old. This limits the ability to drop
the blockchain/immutable table if necessary to prevent a disk space exhaustion
attack. Hence, the operation of setting a table's idle retention to a large
value is restricted to privileged users via a grant of a new TABLE RETENTION system privilege. The idle retention threshold,
which specifies when to require the new privilege BLOCKCHAIN_TABLE_RETENTION_THRESHOLD, is configurable.
Ability to create
blockchain or immutable tables with long retention times and inserting large
amounts of data that can not be deleted could potentially be a vector for a
denial of service attack via disk space exhaustion. To reduce this risk, the
special privilege has been introduced. Only users granted this privilege can
set idle retention above the configurable threshold level.
The Lock-Free Reservation
feature enables concurrent transactions to proceed without being blocked on
updates of heavily updated rows. A Lock-Free Reservation is held on the row,
instead of locking the row. The Lock-Free Reservation verifies if the updates
can succeed and defers the updates until the transaction commit time.
Lock-Free Reservation
improves the end user experience, and concurrency, in transactions.
The maximum number of
columns allowed in a database table or view has been increased to 4096. This
feature allows you to build applications that can store attributes in a single
table with more than the previous 1000-column limit. Some applications, such as
Machine Learning and streaming IoT application workloads, may require the use
of de-normalized tables with more than 1000 columns.
You now have the ability
to store a larger number of attributes in a single row which for some
applications may simplify application design and implementation.
We are introducing a new
set of service processes which execute database service actions.
Service actions are
responsible for maintenance tasks, parallel tasks and brokered tasks,
consolidated tasks and many more. These were performed by dedicated processes
in the database before. The new background scheduler group processes can
execute any of these service actions, thus providing consolidation of
background service actions.
Enhancements to the
compression algorithms for Hybrid Columnar Compression (HCC) include
improvements for faster compression and decompression speeds, as well as
better compression ratios for newly created HCC compressed tables or for
existing HCC compressed tables that are rebuilt. The exact benefits can vary
based on the data and the chosen compression level.
This feature improves an
application's workload performance while reducing database storage utilization.
Starting with Oracle AI
Database 26ai, you can use TCP/IP network connections to access the remote NVMe
storage devices using NVMe over Fabrics (NVMe-oF). The Oracle Grid
Infrastructure server works as an initiator that connects to an NVMe-oF storage
target created using Linux Kernel nvmet_tcp module, providing optimized
user mode access to remote NVMe devices.
NVMe-oF provides a
low-latency and secure way to access remote NVMe devices exported using NVMe
Over Fabrics target. Oracle provides an optimized way to access these NVMe-oF
devices directly from an Oracle process. This Oracle-native method of accessing
NVMe-oF devices reduces latency while Oracle ASM makes storage manageability
easier.
Oracle Database
Configuration Assistant (Oracle DBCA) enables you to select persistent memory
database (PMEM) as your storage option when creating a single-instance
database.
This feature automates
the process of assigning a PMEM device for your database storage enabling you
to place database files in a PMEM storage device.
Oracle Multitenant
enables Oracle AI Database to consolidate multiple pluggable databases as
self-contained databases, improving resource utilization and database
management. In addition to providing a fully centrally managed database
environment with identical, global time zone settings for all pluggable
databases (impacting SYSDATE and SYSTIMESTAMP), pluggable databases can now control their time
zone settings independently. You can control the time zone setting, including
internal processes and operations, or only on a user-visible level.
The ability to control
the time zone behavior for SYSDATE and SYSTIMESTAMP on a pluggable database level increases to
self-containment of individual databases in a multitenant environment and
enhances your consolidation capabilities of independent databases.
Prior to this feature,
after a direct load and prior to a commit, queries and additional DMLs were not
allowed on the same table for the same session or for other database sessions.
This enhancement allows the loading session to query and perform DML on the
same table that was loaded. Rollback to a savepoint is also supported.
This feature removes the
restrictions that you may have encountered when loading and querying
data. Potentially improving the performance of your applications in areas
such as Data Warehousing and complex batch processing.
Oracle AI Database
allows DML statements (INSERT, UPDATE, DELETE,
and MERGE) to be executed in parallel
by breaking the DML statements into mutually exclusive smaller
tasks. Executing DML statements in parallel can make DSS
queries, batched OLTP jobs, or any larger DML
operations faster. However, parallel DML operations had a few
transactional limitations.
This includes a limitation
that restricted transactions with multiple per-table parallel DMLs. This means
that once an object is modified by a parallel DML statement,
that object cannot be read or modified by later statements of the
same transaction. This enhancement removes this limitation, enabling users to
run parallel DMLs, and any combination of statements like queries, serial DML,
and parallel DML on the same object, within the same transaction.
For users, this
simplifies and speeds up data loading and analytical processing by making full
use of Oracle AI Database�s parallel execution and parallel query capabilities.
ACFS auto resize now
allows you to configure the threshold percentage for your file system automatic
resize.
A more flexible threshold
is now available for your file systems auto resize. Previously, the threshold
was fixed to 10%. Now, you can customize to your specific use case needs.
ACFS replication now
allows for primary clusters to replicate to standby cluster on a previous or
older release.
This feature will provide
flexibility in replication configurations, providing ample time for upgrading
and lifecycle maintenance.
ACFS Encryption now
allows you to migrate from OCR to OKV.
This feature allows for a
centralized point for key management using Oracle Key Vault.
A new tool provides users
the ability to configure SSH keys management for ACFS Replication.
Users can now avoid the
repetitive, error-prone process of SSH keys management, setup, and
configuration with this new tool. The tool makes the ACFS replication setup
process more efficient and easier.
A new command, acfsutil repl switchover, provides a coordinated failover.
However, if ACFS cannot establish contact the replication primary site, the
command will fail.
Enhanced flexibility in
ACFS replication management is now available with the addition of this new
command.
This feature provides an
alternative transport choice for ACFS Replication which eliminates the need to
maintain ssh-related host and user keys.
Users now have an
alternative to ssh, including network data transfer, authentication between
replication storage locations, encryption of the data stream, and a facility
for executing remote commands.
You can now back up and
restore PDB snapshot copies on ACFS.
Backing up and restoring
PDB snapshot copies on ACFS, provides the space-efficient storage that is
inherent of ACFS Snapshots.
The acfsutil snap duplicate command can now generate a backup
of an entire ACFS file systems and its snapshots, while preserving its
sparseness.
You can now apply a full
backup to another location while retaining the original sparseness. You can now
replicate an entire ACFS file system and its snapshot tree with this new
functionality.
ACFSutil plogconfig
offers you a way to manage persistent logging configuration settings. acfsutil plogconfig -q will now offer you additional
information on whether the logs have wrapped or not. You can also get this
information with acfsutil
plogconfig -w,
which will offer only this information and not all the comprehensive
information offered by acfsutil
plogconfig -q.
Further information
regarding persistent logging is now available, hence enhancing the experience
in the realm of diagnosability.
The SQL*Loader client can
automatically start a parallel direct path load for data
without dividing the data into separate files and starting
multiple SQL*Loader clients. This feature prevents fragmentation into many
small data extents. The data doesn't need to be resident on the
database server. Cloud users can employ this feature to load data in
parallel without having to move data on to the cloud system if there is
sufficient network bandwidth.
SQL*Loader can load
data faster and easier into Oracle AI Database with automatic parallelism
and more efficient data storage.
Starting with Oracle AI
Database 26ai, BIGFILE functionality is the default for SYSAUX,
SYSTEM, and USER
tablespaces.
A bigfile tablespace is a
tablespace with a single, but large datafile. Traditional small file
tablespaces, in contrast, typically contain multiple datafiles, but the files
cannot be as large. Making SYSUAX, SYSTEM
and USER tablespaces bigfile by default will
benefit large databases by reducing the number of datafiles, thereby
simplifying datafile, tablespace and overall global database management for
users.
This feature supplies the
capability to reliably shrink a bigfile tablespace.
In earlier releases,
organizations may have found that the datafile of a bigfile tablespace grew
larger despite the actual used space being much smaller. This could happen
after a user dropped segments/objects in the tablespace, but was not able to
use datafile resize to recover the freed space due to the location of the data
in the datafile.
By using Bigfile
Tablespace Shrink, organizations can now reliably shrink a bigfile
tablespace to close to the sum of the size of all objects in that tablespace,
optimizing storage and reducing costs.
You can now pass DATE,
TIMESTAMP, and INTERVAL
values to the CEIL and FLOOR
functions. These functions include an optional second argument to specify a
rounding unit. You can also pass INTERVAL values to ROUND
and TRUNC functions.
These functions make it
easy to find the upper and lower bounds for date and time values for a
specified unit.
The Oracle Data Pump TRANSFORM
parameter option CONSTRAINT_NOVALIDATE enables you to set validation
preferences. It has two options: Y or N.
When set to Y, constraints are not validated
during import.
Validating constraints
during import that were valid on the source can be unnecessary and slow the
migration process. Validation can be done after import.
Database clients can
securely pull application configuration data from Azure or OCI Cloud. The store
can contain data such as application connection descriptors and tuning
parameters.
Central configuration
makes application management and scaling easier. It fits well with
architectures such as microservices and serverless deployments.
The Oracle Data Pump TRANSFORM parameter
now includes the LONG_TO_LOB option to migrate all LONG and
LONG RAW data types.
Using this transform
enables you to migrate the deprecated LONG
and LONG RAW
data types by transparently and automatically converting them to CLOB
and BLOB data types. This parameter changes
all LONG data types to CLOB
and all LONG RAW data types to BLOB.
The syntax is TRANSFORM = LONG_TO_LOB:[Y|N].
The default is N.
Expression columns, also
known as virtual columns, are additional columns derived (computed) from
existing columns. They can be persisted (materialized) on disk, complementing
the existing default functionality of computing the results at runtime only.
Choosing between
computation at runtime and computation at DML time for expression columns
provides more flexibility in choosing the right approach for an application.
Materializing expression
columns trades disk storage for the need to compute the same expression over
and over again.
The ACDR feature of
Oracle GoldenGate adds hidden columns to tables to resolve conflicts when the
same row is updated by different databases using active replication. GoldenGate
can also create a "tombstone table," which records interesting column
values for deleted rows. Oracle Data Pump can exclude the hidden columns and
the tombstone tables by setting a new import transform parameter, OMIT_ACDR_METADATA.
Oracle Data Pump enhances
migration flexibility. It can migrate data from an Oracle
GoldenGate ACDR (automatic conflict detection and resolution) environment
to a non-ACDR environment by excluding the GoldenGate ACDR metadata during
import.
Oracle ACFS now supports
PDB Snapshot Carousel, which allows you to maintain a library of PDB Snapshots.
Oracle AI Database files
stored on Oracle ACFS file systems can now leverage PDB Snapshot Carousel in
conjunction with ACFS snapshot technology.
SQL*Loader now supports
Simple Oracle Document Access (SODA). You can insert, append, and replace
external documents into SODA collections in Oracle AI Database applications by
using the SQL*Loader utility in both control file and express modes.
SQL*Loader support
for Simple Oracle Document Access (SODA) makes it easier and faster
to load schema-less JSON or XML-based application data into Oracle AI
Database.
Managing a transaction
requires the connection and session resources to be tied to the transaction
throughout its lifecycle. Therefore, the session or connection can be released
only after the transaction has ended. This often results in underutilization of
sessions/connections. In Sessionless Transactions, after you start a
transaction, you have the flexibility to suspend and resume the transaction
during its lifecycle. The session or connection can be released back to the
pool and can be reused by other transactions, therefore effectively being able
to multiplex transactions and sessions/connections.
Sessionless Transactions
provide ability for applications to suspend and resume transactions across
sessions/connections (single instance or RAC) without the need for an external
transaction manager, and without the application having to coordinate the
commit and recovery protocols. The database manages transaction lifecycle,
including commit and recovery. Application performance, and throughput,
benefit from reduced commit latency since fewer client-server roundtrips are
needed. Since external coordination is not required, using Sessionless
Transactions results in vastly simplified mid-tier or app-tier infrastructure,
and significantly decreases downtimes when compared with externally
coordinating transactions (such as with XA).
Transportable Binary XML
simplifies the XML data storage and makes it easier to transport. It does not
store the metadata used to encode or decode XML data in a central table.
XMLTYPE_STORAGE_CLAUSE now takes the options TRANSPORTABLE BINARY XML or BINARY XML.
Oracle recommends that you use the TRANSPORTABLE
BINARY XML XMLType,
the new and recommended storage type for Release 26ai to store data in a
self-contained binary format.
Use the BINARY XML
(Non-Transportable) storage XMLType to store data in a post-parse, binary
format designed specifically for XML data. Binary XML is compact, post-parse,
XML schema-aware XML data. Binary XML is non-transportable and stores the
metadata used to encode or decode XML data efficiently in a central
table.
Data Pump can export and
import data of type XMLType regardless of the source database XMLType storage
format (object-relational, binary XML or CLOB). Oracle Data Pump exports and
imports XML data as Transportable Binary XML so the the source and target
databases can use different XMLType storage models for the data.
An index-organized table
(IOT) is a table stored in a variation of a B-tree index structure where rows
are ordered by primary key. IOTs are useful because they provide fast random
access by primary key without duplicating primary key columns in two structures
� a heap table and an index. In earlier releases, IOTs only supported Oracle�s
prefix compression (formerly called key compression), which required additional
analysis and had the possibility of negative compression (where the overhead of
compression outweighed the compression benefits).
Advanced LOW IOT
Compression allows you to reduce the overall storage for Oracle AI
Databases.
Automatic SecureFiles
Shrink selects SecureFiles LOB segments based on a set of criteria and executes
the free space shrink operation in the background for the selected segments.
With Automatic SecureFiles Shrink, the shrink operation happens transparently
in small and gradual steps over time while allowing DDL and DML statements to
execute concurrently. In the manual method, you must decide on which LOB
segments to shrink using tools like Segment Advisor and use a DDL statement to
execute the shrink operation. The manual method may not be feasible for very
large LOB segments because it is time-consuming.
Automatic SecureFiles
Shrink simplifies administrator duties and saves time due to the automation of
this process.
Organizations use Hybrid
Columnar Compression for space saving and fast analytics performance. However,
the compression and decompression overhead of Hybrid Columnar Compression can
affect direct load performance. To improve direct load performance,
Automatic Storage Compression enables Oracle AI Database to direct load data
into an uncompressed format initially, and then gradually move rows into Hybrid
Columnar Compression format in the background.
Automatic Storage
Compression improves direct load performance, while keeping the advantages of
Hybrid Columnar Compression, including space savings and fast
analytics performance.
DBCA silent mode options
changes in various functionality
DBCA silent command line
options integrate smoothly with custom scripts and provide user-friendly
errors.
Enhanced Query History
Tracking and Reporting lets you track and report on a more complete history of
user-issued queries than is available in previous releases. This feature
provides you with greater capability to track user-initiated queries within a
session. It includes non-parallel queries with less than five seconds of
execution time, which are not tracked with Real-time SQL Monitoring unless
tracking is forced by a hint. Each user can access and report on their own
current session history. SYS users and DBAs can view and get query history
reports for all current user sessions and can also turn this functionality on
or off. Reporting is configurable, with options for selecting the reporting
scope and detail level.
Enhanced Query History
Tracking and Reporting allows application developers and development operations
(DevOps) personas to get detailed insight into the queries that execute on
your databases. This insight allows you to better manage and optimize
your applications.
This feature adds
enhancements to Memoptimize Rowstore Fast Ingest with support for partitioning,
compressed tables, fast flush using direct writes, and direct In-Memory column
store population support. These enhancements make the Fast Ingest feature
easier to incorporate in more situations where fast data ingest is required.
This feature helps Oracle
AI Database provide better support for applications requiring fast data ingest
capabilities. Data can be ingested and then processed all in the same database.
This reduces the need for special loading environments, and thus reduces
complexity and data redundancy.
You can experience
improved read and write performance for LOBs due to the following enhancements:
This feature adds a host
of improvements to accelerate SecureFiles writes for JSON document-based
applications, for write calls issued by a database file system, and also for
LOB workloads where the underlying data is compressed for storage savings.
Queries can require large
amounts of temporary space and some temporary space operations run in critical
background processes, like the System Monitor (SMON) process. SMON is
responsible for cleaning up temporary segments that are no longer in use. SMON
checks regularly to see whether it is needed, and other processes can call
SMON. Temporary space management can affect SMON's scalability for other
critical actions. This new enhancement instead uses the Space Management
Coordinator (SMCO) process so that the responsibility of managing temporary
space is offloaded from SMON, thereby improving its scalability.
This feature improves the
overall scalability of the SMON process, particularly in a multitenant Oracle
RAC cluster.
The Memory Speed Columnar
enhancement is the next generation of Hybrid Columnar Compression. The existing
Hybrid Columnar Compression (HCC) uses an on-disk data format that is best
suited for analytical workloads but does not support in-memory columnar
formats. Memory Speed Columnar introduces a new Compression Unit (CU) data
format that enables Memory Speed Columnar scans in all storage tiers, and
eliminates the columnar format mismatch between HCC, Exadata flash columnar
formats and the Database In-Memory format. The Memory Speed Columnar
enhancement is an optional extension to the existing Hybrid Columnar
Compression syntax and can coexist with existing HCC objects.
The Memory Speed Columnar
enhancement makes on-disk scans more efficient. It does this by leveraging
in-memory formats and enabling the creation of larger on-disk compression units
(CUs), which improves processing efficiency, such as SIMD (Single
Instruction/Multiple Data) operations. The new format eliminates the mismatch
between HCC, Exadata flash columnar, and Database In-Memory columnar formats,
minimizing transformations. As a result, analytic workloads typically benefit
from reduced CPU usage, improved query performance, and storage efficiency
comparable to existing Hybrid Columnar Compression capabilities.
You can use the
SecureFiles Migration Utility to simplify the migration and compression of
BasicFile LOB segments to SecureFiles LOB segments.
Earlier it was
challenging to decide which BasicFile LOBs to migrate to SecureFile LOBs, and
whether or not to compress the LOBs, especially considering that organizations
often have many databases, with a large numbers of schemas, tables, and segments.
SecureFiles Migration Utility automates several steps that were earlier
performed manually. It also generates several reports that help you decide
which BasicFile LOBs you want to migrate and compress.
The processing of ordered
sequences in Oracle Real Application Clusters (Oracle RAC) has been optimized
to provide better performance without requiring manual changes, ensuring a
strict sequence order.
Applications using
ordered sequences in Oracle RAC environments will benefit from improved
performance and scalability.
The Oracle Data Pump
Import command-line mode ONESTEP_INDEX parameter optimizes index
creation concurrency and balances it with overall job parallelism. It does this
in conjunction with the INDEX_THRESHOLD parameter.
Index creation is an
essential step in the migration process. Enabling parallelism for large index
creation and balancing the needs of large index creation with overrall import
job parallelism makes more efficient use of parallel resources assigned to a
Data Pump import job. It makes the logical migration process more effective by
substantially reducing the time to import. Finally, it removes the effort
associated with the extra step of extracting the large index definitions
from the source dumpfiles and creating these large indexes outside the import
job.
There is now a pluggable
database configuration in a Data Guard environment using Database Configuration
Assistant (DBCA).
A command line based
silent mode option is available for configuring pluggable databases (PDBs) in
Data Guard environments.
Database Configuration
Assistant (DBCA) allows you to clone a remote Pluggable database (PDB) as
a refreshable PDB. When a PDB is created as refreshable, the changes of the
source PDB will periodically propagate to the refreshable PDB. The refreshable
PDB can be configured to refresh manually or automatically during creation.
A DBCA-based graphical
user interface or scripted silent mode for cloning a remote refreshable PDB
reduces many commands needed to create a remote refreshable PDB clone ensuring
a faster and more reliable cloning of PDBs.
This feature supplies the
capability to reliably shrink a smallfile tablespace.
In earlier releases,
organizations may find the datafiles of a smallfile tablespace grow larger
despite the actual used space being much smaller. This can happen after a user
drops segments or objects in the tablespace, but depending on where data was
located in the datafiles, users were not always able to use datafile resize to
recover the freed space.
By using Smallfile
Tablespace Shrink, you can now expect your smallfile tablespace size to be
close to the sum of the size of all segments,and objects in that tablespace.
You can now reliably shrink a smallfile tablespace, which means improved
storage optimization and reduced storage costs.
This section describes
the new diagnosability features.
Cluster Health Monitor
introduces a new diagnostic ability to listen for critical component events
that could indicate pending or actual failure and report these with recommended
corrective actions. In some cases, these actions may be executed autonomously.
Such events and actions could then be captured and admins notified through
components such as Trace File Analyzer.
Improving the robustness
and reliability of Oracle AI Database hosting infrastructure is a critical
business requirement for enterprises. This improved ability to detect and
correct at first failure and self-heal autonomously delivers value by improving
business continuity.
These are existing
features but changes and enhancements to functionality and default values.
Decreases time to
identify and address critical events in the database. Changes tracing limits to
be more reasonable than being unlimited and facilitates content identification
so that customers are aware what trace data is provided to Oracle for further
diagnosis.
Cluster Health Advisor's
(CHA) diagnostics capability is extended to support 4K pluggable databases
(PDBs) from 256. This is critical for Oracle Autonomous Database deployments.
CHA's problem detection and root cause analysis improves accuracy by
considering database events such as reconfiguration. This improves detection,
analysis, and targeted preventative actions for problems, such as instance
evictions.
By adding this support to
Cluster Health Advisor, performance and availability are kept in line with the
deployment size. The business continuity of critical applications is preserved
with improved prognostics and targeted preventive actions.
Oracle Update Advisor is
a software update recommendation framework that provides information to keep
software at recommended versions.
Using Oracle Update
Advisor simplifies software maintenance. In combination with tools such as the
Database Creation Assistant (DBCA) and Fleet Patching and Provisioning (FPP),
Oracle Update Advisor provides you with your software status and provides
update and maintenance recommendations.
You can leverage Oracle
Update Advisor with Oracle Fleet Patching and Provisioning (Oracle FPP). Oracle
Update Advisor is a software recommendation framework that analyzes the health
of Oracle AI Database and Oracle Grid Infrastructure, provides patch
recommendations, and creates fully functional gold images based on your patch
maintenance policy. These gold images are downloaded automatically into the
Oracle FPP Gold Image repository.
Using Oracle Fleet
Patching and Provisioning in conjunction with Oracle Update Advisor greatly
simplifies and streamlines the update experience. You can use the Oracle Update
Advisor for both Oracle FPP Local Mode and Oracle FPP Central Server Mode.
The SQL diagnostic
package (DBMS_SQLDIAG) includes a new function
called REPORT_SQL which generates a zip archive
containing a deep-level HTML diagnostic report for a specified SQL statement.
The report includes important diagnostic information such as a plan history,
non-default database parameters, optimizer statistics history, statistics
status, index details, and more. The archive will also include, where
available, captured SQL Monitor reports for the SQL.
This feature makes it
easier to diagnose SQL performance issues.
Telemetry Streaming
offers a comprehensive, turnkey solution for metrics streaming and observability
with Oracle AI Database. It supports ultra-fast metrics ingestion using REST
and PL/SQL. It enables users to query metrics data for monitoring and alerting
purposes through SQL, PL/SQL, or PromQL (Prometheus' Query Language).
Additionally, Telemetry Streaming automates data lifecycle management,
including compression and downsampling for older metrics data, optimizing
storage and performance over time.
Metrics streaming is
essential for modern enterprise use cases, such as DevOps monitoring, asset
tracking, and anomaly detection. While Oracle AI Database offers best-of-breed
features for building a metrics streaming solution, assembling these components
can be complex and time-consuming. Telemetry Streaming simplifies this process
by packaging Oracle�s powerful technologies into a streamlined, ready-to-use
solution, enabling faster deployment, easier management, and reduced
operational overhead for metrics streaming applications.
The SQL plan management
API (DBMS_SPM) includes a new procedure called ADD_VERIFIED_SQL_PLAN_BASELINE. It searches the cursor cache,
AWR, and automatic SQL tuning set to establish which execution plan is best for
a specified SQL statement. It creates an accepted SQL plan baseline for
the best plan.
This feature provides
improved performance management.
Using the command line
interface, you can now monitor statistics for all database service registration
operations (such as register, update, or unregister) that the Oracle Connection
Manager (CMAN) listener performs. You can also view additional diagnostic
details about service registration events in the CMAN and listener log files.
This feature enables you
to evaluate statistics about service registration operations at both global and
instance levels, analyze their traffic, and diagnose registration issues.
DBMS_DICTIONARY_CHECK is a read-only and light weight
PL/SQL package procedure that helps you identify database dictionary
inconsistencies that are manifested in unexpected entries in the RDBMS
dictionary tables or invalid references between dictionary tables. Database
dictionary inconsistencies can cause process failures and, in some cases,
instances crash. DBMS_DICTIONARY_CHECK assists you
in identifying such inconsistencies and provides a guided remediation
to resolve the problem and avoid such database failures.
This feature improves
database availability thus reducing the management and maintenance time for
environments utilizing this package.
Before you enable
deduplication, you can estimate the space that you can save by enabling
advanced LOB deduplication for existing LOBS.
This enables you to take
an informed decision to enable deduplication. Advanced LOB Deduplication
enables Oracle AI Database to automatically detect duplicate LOB data within a
LOB column or partition, and conserve space by storing only one copy of the
data.
Automatic Storage
Management (ASM) extent-based scrubbing changes the granularity level on which
ASM scrubs data from a file and disk group level to the extent level.
Compared to scrubbing the
whole file, scrubbing specific extent sets significantly reduces the scrubbing
turn-around time, improves the data availability, and minimizes the performance
impact.
The Scheduler In-Memory
Tracing feature is aimed at designing and implementing tools for the collection
and temporary in-memory storage of scheduler trace messages generated during
process execution.
It is critical to
successfully restart jobs when they are interrupted by forced shut downs, like
a forced patching cycle. With the addition of High Availability (HA)
diagnostics in the DBMS_SCHEDULER package, you will be able to add
real-time in-memory diagnostics during forced shut downs, and address any issues
that result from these
diagnostics.
This feature provides
benefits like easier collection of trace messages generated since the initial
failure, reduction in user interaction to collect traces, and significant
reduction in multiple requests of problem reproduction.
The In-Memory Advisor is
now part of Oracle AI Database and has two components: (1) an eligibility test
that identifies databases that are not good candidates for Database In-Memory
and (2) an advisor with enhanced analysis capability to better identify
workloads that will benefit from Database In-Memory.
The In-Memory Advisor
makes it easier and faster to identify databases that can take advantage of
Database In-Memory. The In-Memory Advisor is now built into the database in
place of having to install a separate standalone utility. An eligibility test
provides the ability to quickly eliminate workloads that will not benefit from
Database In-Memory, saving time and effort. An enhanced analysis capability
that makes identification of analytic workloads that will benefit from Database
In-Memory simpler and more accurate. Together, these two components make it
much simpler to decide where and when to use Database In-Memory.
New Oracle Call Interface
(OCI) APIs allow applications to enable and disable client-side OCI diagnostic
tracing dynamically without the need to update configuration files or set
environment variables.
This feature allows
developers to improve OCI application problem troubleshooting and reduce issue
resolution time.
To rename an existing LOB
segment users perform an operation such as ALTER TABLE ... MOVE,
which could perform slowly since the operation physically moves the LOB data as
part of the renaming.
This enhancement improves
the performance of renaming a LOB segment, at the table, partition and
subpartition level by eliminating the physical movement of the LOB data.
In Oracle AI Database
26ai, you get significant improvements with the installation process,
especially with upgrades using the AutoUpgrade utility.
You can archive and
unarchive Oracle FPP gold images that are not currently used but cannot be
deleted for future access. Archiving and unarchiving gold images allow you to
store those images on external storage devices of your choice in a
space-efficient, compressed fashion, thereby freeing up storage space on
high-end storage devices hosting the central FPP gold image repository.
Archiving gold images
that are not currently used, but need to be retained, saves space and costs by
allowing you to flexibly and efficiently store them on external storage devices
of your choice.
You can create a backup
of the Oracle Fleet Patching and Provisioning (Oracle FPP) server, restore data
from the backup, and relocate the server from backup to new hardware. Relocate
the Oracle FPP Server to new hardware and re-point Oracle FPP targets whenever
needed.
Ensure data safety by
backing up Oracle FPP Server and restoring data in case of failure.
Oracle AI Database
Installer now supports specifying commands and input parameters for those
commands using the command-line interface.
Easier and simpler Oracle
AI Database deployments are supported using the command-line interface in
addition to the graphical user interface.
Oracle Fleet Patching and
Provisioning Local Mode does not require the Grid Infrastructure Management
Repository (GIMR) and the Java container.
Oracle Grid
Infrastructure and Oracle AI Database administrators can use Oracle FPP Local
Mode without setting up any additional components on a cluster, making the
patching process simpler and faster.
Starting with Oracle Grid
Infrastructure 26ai, Oracle Fleet Patching and Provisioning (FPP) stores
metadata in a local Single Instance Enterprise Edition Database or an
external Oracle metadata repository. New installations will store the metadata
by default in a Single Instance Enterprise Edition Database.
Allowing to choose an
external metadata repository database or a local Single Instance Enterprise
Edition Database database simplifies the deployment of the Fleet Patching and
Provisioning server.
Oracle Grid
Infrastructure Installer now supports specifying life-cycle management
operations and input parameters for those operations on the command line.
Easier and simpler Oracle
Grid Infrastructure deployments are supported using the command line, in
addition to the graphical user interface.
The Oracle Grid
Infrastructure installer has been upgraded with options to create and manage
gold images and perform out-of-place patching while reducing the inventory
metadata to effectively manage installation and patching.
Out-of-place patching
using the Oracle Grid Infrastructure Installer directly makes patching more
manageable and reliable.
Store Oracle Fleet
Patching and Provisioning (Oracle FPP) gold images as ZIP files, create ZIP
files from existing Oracle homes, and transfer these ZIP files.
Save significant storage,
bandwidth, and transfer time by storing and transferring gold images as ZIP
files.
AutoUpgrade supports the
option of using AutoUpgrade to perform out-of-place Oracle home Release Update
patching.
For an out-of-place patch
of Oracle AI Database using AutoUpgrade, AutoUpgrade moves the source database
that you want to patch to a new Oracle AI Database Oracle home, and then
patches the database binaries in that target Oracle home with the Release
Update that you select. With this option, you can use AutoUpgrade at any time
that you want to move the database to a new Oracle home, either as part of a
planned upgrade or as part of a patch plan. In a patch operation, AutoUpgrade
performs the patch using the following workflow:
AutoUpgrade automatically
evaluates system resources and makes an intelligent decision as to how many
upgrade jobs can run simultaneously.
AutoUpgrade uses the CPU_COUNT
value and system process parameters to determine available system resources,
and calibrates both the number of upgrades that can run at a time and the
number of parallel threads for each upgrade. Upgrades that exceed a safe
threshold are put in a queue so that they can be run as system resources become
available.
AutoUpgrade enhances
support for databases that use transparent data encryption (TDE) by enabling
keystore generation.
AutoUpgrade now enables
you to provide passwords to an external key manager generated and maintained by
AutoUpgrade. With this configuration, AutoUpgrade supports unmanned or
automated operations of TDE-enabled databases. AutoUpgrade can open the source
database keystore without prompting for the keystore password, and enroll the
target database into the TDE external keystore for key management, so that the
target database can start automatically.
You can now use the
AutoUpgrade Unplug/Plug method in Oracle AI Database to unplug a PDB from one
system and plug into a different system and upgrade.
In earlier releases,
AutoUpgrade supported unplug/plug/upgrades on the same server, but it was not
possible to unplug a PDB from one server, plug it into a different system, and
then upgrade the PDB. With this feature, you can now migrate and upgrade the
PDB in a single operation, including migrations to the cloud.
To facilitate safe and
secure remote use of the AutoUpgrade for Oracle AI Database upgrades,
AutoUpgrade now provides REST APIs (ORDS and OCI).
The Oracle REST Data
Services (ORDS) database API is a database management and monitoring REST API
embedded into Oracle REST Data Services. The Oracle Cloud Infrastructure (OCI)
REST API is enabled by configuring the REST Adapter connection to use the OCI
Signature Version 1 security policy. You can now use these features to run
AutoUpgrade upgrades remotely over SSH.
Oracle DBCA can apply
Release Updates (RUs) out-of-place using Gold Images for both Oracle Grid
Infrastructure homes and Oracle AI Database homes.
DBCA greatly simplifies
and automates the process of applying new Gold Image-based quarterly Release Update
patches to Oracle Grid Infrastructure and Oracle AI Database homes using
command line parameters.
This section lists the
new features for Oracle AI Database 26ai by Release Update.