28 January 2019

Oracle Autonomous Database - How Oracle 12 c Became Oracle 18c/19c


Oracle Autonomous Database

Oracle Autonomous Database combines the flexibility of cloud with the
power of machine learning to deliver data management as a service. It
enables businesses to:

• Safely run mission-critical workloads using the most secure, available,
performant, and proven platform - Oracle Database on Exadata

• Migrate both new and existing OLTP or Analytics applications

• Deploy in both the Oracle Public Cloud and on Cloud at Customer in their
own data centers, providing the easiest and safest cloud migration and
hybrid cloud enablement

• Cut administration costs up to 80% with full automation of operations and
tuning

• Cut runtime costs up to 90% by billing only for resources needed at any
given time

• Protect themselves from cyber-attacks and rogue employees by
automatically encrypting all data and automatically applying any needed
security updates online

• Guarantee 99.995%1 uptime to ensure mission-critical applications are
always available. Downtime is limited to under 2.5 minutes per month,
including maintenance

Oracle Database Support Best Practices
THE ORACLE AUTONOMOUS DATABASE

Like an autonomous car, the Oracle Autonomous Database (Autonomous Database) provides a level of performance and reliability manually managed databases can’t deliver. Compared to a manually managed database, the Autonomous Database costs less to run, performs better, is more available, and eliminates human error.

Larry Ellison Introduces Oracle Autonomous Database Cloud



Self-Driving

You tell the Autonomous Database the service level to achieve, and it handles the rest. The Autonomous Database eliminates human labor to provision, secure, monitor, backup, recover, troubleshoot, and tune databases. This greatly reduces database maintenance tasks, reducing costs and freeing scarce administrator resources to work on higher value tasks.

Oracle Cloud Infrastructure Weninars:


Since the Autonomous Database is based on the extremely feature rich and proven Oracle Database, on the Exadata platform, it is able to run both OLTP and analytic workloads up to 100X faster. It includes many performance enhancing Exadata features such as smart flash cache, automatic columnar format in flash cache, smart scan, Exafusion communication over the super-fast InfiniBand network, and automatic storage indexes.

Oracle PaaS: Data Integration Plataform Cloud: Product Overview Animated Video



In addition, when it comes time to upgrade or patch, the Autonomous Database can replay the real production workload on a test database to make sure the upgrade does not have any unexpected side effects on a mission-critical system.

Autonomous database automatically tunes itself using Machine Learning algorithms including automatically creating any indexes needed to accelerate applications. Users get the ultimate simplicity of a “load and go” architecture in which they can simply load their data and run SQL without worrying about creating and tuning their database access structures.

Self-Securing

The Autonomous Database is more secure than a manually operated database because it protects itself rather than having to wait for an available administrator. This applies to defenses against both external and internal attacks.

Security patches are automatically applied every quarter. This is much sooner than most manually operated Oracle databases, narrowing an unnecessary window of vulnerability. Patching can also occur off-cycle if a zero-day exploit is discovered. By applying patches in a rolling fashion across the nodes of a cluster, the Autonomous Database secures itself without application downtime.

Oracle Multitenant: New Features in Oracle Database 18c



Patching is just part of the picture. The database also protects itself with always-on encryption. Customers can control their own keys to further improve security.

In the future, Oracle’s Data Masking and Redaction technologies will be used to safeguard sensitive data by concealing it for some users or workloads and masking it on test databases.

Create Autonomous Data Warehouse Cloud Connection with Data Integration Platform Cloud



Self-Repairing

The Autonomous Database is more reliable than a manually operated database. At startup, it automatically establishes a triple-mirrored scale-out configuration in one regional cloud datacenter, with an optional full standby copy in another region. The Autonomous Database automatically recovers from any physical failures whether at the server or datacenter level. It has the ability to rewind data to a point in time in the past to back out user errors. By applying software updates in a rolling fashion across nodes of the cluster, it keeps the application online during updates of the database, clusterware, OS, VM, hypervisor, or firmware.

If the database detects an impending error, it gathers statistics and feeds them to AI diagnostics to determine the root cause. As a final safety net, the Autonomous Database runs nightly backups for you.


Oracle Database Release Uptake and Patching Strategies
In the future, when it is time to update the Autonomous Database, it will be possible to replay the full
production workload on a parallel testing environment to verify the safety of the update before it is applied to a mission-critical environment.

Oracle will offer a 99.995% uptime guarantee for the Autonomous Database. Oracle understands that
mission-critical systems run 24x7. Unlike other cloud vendors, Oracle provides an uptime guarantee that includes planned maintenance and all other common sources of downtime in its calculations.

Optimized for Different Workloads

Modern automobiles are specialized by workload: family car, van, pickup truck, sports car, etc. In the same way, the Autonomous Database consists of a single set of technologies available in multiple products, each tailored to a different workload:

Data Warehousing. The Oracle Autonomous Database for Data Warehousing is the simplest and most
efficient database for data marts, reporting databases, and data warehousing. Available January 2018.

OCI Level 100 Autonomous Database



OLTP and mixed workloads. 

The Oracle Autonomous Database for OLTP is designed to run mission-critical
enterprise applications, including mixed workloads and real-time analytics, with no compromise on app performance. Coming in 2018.
In the future, Oracle will also bring the autonomous principles of self-driving, self-securing, self-repairing to other kinds of databases:

• NoSQL. Delivers transactional operations on JSON documents and key-value data. Available in 2018.
• Graph. Automatically creates graph representations from tabular and JSON data for discovery of new connections through network analysis. Coming in 2018.

Melbourne Groundbreakers Tour - Hints and Tips




In addition, the Autonomous Database provides IT leaders with a cloud-native enterprise-class foundation for new app and data science development.

• Increase app developer productivity. The Autonomous Database instantly provides app developers
with a platform that offers the variety of data management methods their apps require with the simplicity of a self-managing database. App developers simply push a button to provision a mission critical capable database.
• Simplify data science experimentation. Data science, like all science, boils down to experimentation.

The Autonomous Database’s built-in machine learning capabilities along with its self-driving and selfsecuring capabilities, makes it easy for data science teams to experiment with datasets that are
otherwise locked away in operational silos for performance or security reasons.

Oracle Autonomous Database - Fear Not.... Embrace it - AutonomousDB-01



EASY AND FAST TRANSITION TO THE CLOUD

For IT leaders who want to move enterprise IT to a cloud foundation, the Autonomous Database offers the smoothest and easiest transition.

• Oracle Public Cloud, Cloud at Customer, or both. The Autonomous Database runs in both the Oracle Public Cloud and Cloud at Customer environments. This means IT leaders can have the management ease and subscription pricing of cloud for all enterprise workloads, including those that must stay inhouse for regulatory, data sovereignty, or network latency reasons.

• Go cloud-native without app changes. Because the Autonomous Database is still an Oracle database, existing apps can be quickly and easily moved to this new cloud-native data management platform with no app changes.

With Autonomous Database, major cost savings and agility improvements come quickly, not after
years to decades of application rewrites.


Oracle Autonomous Data Warehouse Cloud Service




SAFEST TRANSITION TO THE CLOUD

The transition to the cloud must improve the availability of mission-critical workloads, not put them at risk.

The Autonomous Database is built on top of the most widely proven and sophisticated database in the world:

Oracle Database. The Oracle Database is capable of running any type of workload in a highly secure,
available, and scalable fashion.

The Autonomous Database runs on the best database platform in the world: Exadata. Exadata is a cloudarchitected scale-out platform that uses the latest technologies including NVMe flash and InfiniBand networking, together with unique database optimizations in storage, compute, and networking to deliver leading performance, scaling, and availability, at the lowest cost.

Oracle on Serverless Computing: Developing FaaS with Oracle



Oracle’s long experience and track record ensures that the transition to the cloud is safe and smooth. The largest enterprises and governments in the world already run all types of mission-critical workloads with Oracle Database on Exadata including:

• Multi-petabyte warehouses
• Ultra-critical applications like financial trading of trillions of dollars daily
• Highly sophisticated and complex business applications like SAP, Oracle Fusion Apps, Salesforce, etc.
• Massive enterprise database consolidations to reduce the cost of fragmented database deployments

DO MUCH MORE, WITH FAR LESS

Administering a mission-critical database is traditionally very expensive because it requires manual
provisioning, securing, monitoring, patching, backing-up, upgrading, recovering, troubleshooting, testing, andtuning of a complex highly available scale-out deployment with disaster recovery protection. The extensiveautomation provided by Autonomous Database dramatically simplifies these tasks, reducing administration costs up to 80%.

Traditional database deployments need to provision for the peak possible workload and add a substantial margin of safety on top of that. But peak workloads tend to occur infrequently, leaving most of this costly capacity idle the majority of the time. Oracle’s Universal Credits subscription model for cloud deployments allows customers to pay for just the resources they use. Autonomous Database allows elastic adjustment of compute and storage resources so that only the required resources are provisioned at any given time, decreasing runtime costs by up to 90%.

Under the Hood of the Smartest Availability Features in Oracle's Autonomous



New application development often suffers from many months of delays waiting for database provisioning, testing, and tuning. With Autonomous Database, new applications don’t wait at all, saving tens of thousands of dollars per application and enabling much faster innovation.

The Autonomous Database subscription includes many management, testing, and security capabilities that previously had to be licensed separately, including:

• Data Encryption
• Diagnostics Pack
• Tuning Pack
• Real Application Testing
• Data Masking, Redaction and Subsetting
• Hybrid Columnar Compression
• Database Vault
• Database In-Memory (subset) – in Autonomous Data Warehouse
• Advanced Analytics (subset) - in Autonomous Data Warehouse

To implement full data management workflows, other clouds use a combination of multiple specialized databases such as a queuing database, OLTP database, JSON data store, reporting database, analytics database, etc. Each database is independently developed and therefore has its own data model, security model, execution model, monitoring model, tuning model, consistency model, query language, analytics, etc. Data needs to be transformed and copied between these specialized
databases. While moving data between specialized databases can make sense for some extreme
high-end applications, it adds enormous unnecessary cost and complexity to the large majority of
applications.

Oracle RAC - Roadmap for New Features




Furthermore, it severely compromises security since protection is limited by the worst
system in the workflow. The Autonomous Database handles all these functions in a single database with no need for complex data movement and provides integrated analytics across all data types.


Behavior Changes, Deprecated and Desupported Features for Oracle Database 18c


Review for information about Oracle Database 18c changes, deprecations, and desupports.

About Deprecated and Desupported Status
In addition to new features, Oracle Database release can modify, deprecate or desupport features, and introduce upgrade behavior changes for your database

Simplified Image-Based Oracle Database Installation
Starting with Oracle Database 18c, installation and configuration of Oracle Database software is simplified with image-based installation.

Initialization Parameter Changes in Oracle Database 18c
Review to see the list of new, deprecated, and desupported initialization parameters in this release.

Deprecated Features in Oracle Database 18c
Review the deprecated features listed in this section to prepare to use alternatives after you upgrade.

Desupported Features in Oracle Database 18c
Review this list of desupported features as part of your upgrade planning.

Terminal Release of Oracle Streams
Oracle Database 18c is the terminal release for Oracle Streams support. Oracle Streams will be desupported from Oracle Database 19c onwards.

Feature Changes for Oracle Database 18c Upgrade Planning
Use these feature changes to help prepare for changes that you include as part of your planning for Oracle Database 18c upgrades.

MAA - Best Practices for the Cloud



Oracle Database 18c – Some important changes

Posted on March 7, 2018 by Mike.Dietrich

I know that Oracle Database 18c is available in the Oracle Cloud and on Exadata engineered systems only right now. But actually I’ve had conversations with some customers who downloaded Oracle 18c on-prem software for Exadata and installed it on their systems. Therefore it may be useful to talk about Oracle Database 18c – Some important changes.

Oracle Database 18c – Some important changes
I will highlight some important changes but of course won’t cover all of them here.

Installation
You may recognize the first change after downloading the image: The installation and configuration of Oracle Database software is simplified with image-based installation. You’ll extract a zip file (db_home.zip) into the directory where you’d like your Oracle installation to be located in – and then call the runInstaller. Be aware: it sits now directly in the $ORACLE_HOME, not in the $ORACLE_HOME/oui subdirectory:

cd $ORACLE_HOME
./runInstaller
runInstaller is a script in this case. The name is kept for persistence.

Melbourne Groundbreakers Tour - Upgrading without risk




Furthermore there are two other new features:

RPM based installation in Oracle 18c
It performs preinstall checks, extracts the database software, reassigns ownership to the preconfigured user and groups, maintains the inventory, and executes all root operations required. Works for a single-instance and client software.

Read-Only Oracle Home in Oracle 18c
In Oracle 18c you can configure read-only homes. In this case all the configuration data and log files reside outside the Oracle home. You can deploy it as a software image across multiple servers.Apart from the traditional ORACLE_BASE and ORACLE_HOME directories, the following directories contain files that used to be in ORACLE_HOME: ORACLE_BASE_HOME and ORACLE_BASE_CONFIG

And interesting thing happens if you call the installer kept for internal purposes in $ORACLE_HOME/oui/bin:
it will start with a different versioning, i.e. as an Oracle 12.2 OUI. The install script runInstaller is in the $ORACLE_HOME directory. And it will greet you with Oracle 18c – and not Oracle 12.2.

Oracle Streams

Yes, the deprecation of Oracle Streams has been announced in the Oracle Database 12.1.0.2 Upgrade Guide a while ago. And Oracle 18c is now the terminal release for Oracle Streams. Beginning with Oracle 19c the feature Oracle Streams won’t be supported anymore. Please note that Oracle Multitenant, regardless of Single- or Multitenant, never implemented Oracle Streams functionality.

Oracle Multimedia

Beginning with Oracle 18c Oracle Multimedia is deprecated now. In case you’d like to remove Oracle Multimedia from your database please see this blog post: Remove Oracle Multimedia. In addition, Multimedia DICOM gets desupported with Oracle 18c as well.

Please note (and thanks Felipe for asking):
The Locator will become a top level component once Oracle Multimedia gets removed and therefore not depend on Multimedia anymore. This will happen in the first release of Oracle where Multimedia does not get installed anymore by default or even removed as part of an upgrade.

Deprecated and Desupported Features  in Oracle Database 18c
Please find the full list of deprecated features in Oracle Database 18c in the Database 18c Upgrade Guide. Furthermore you’ll find a list of desupported features and parameters in Oracle Database 18c within the same book.

The Oracle Autonomous Database #12c #18c




Cool New Features for Developers in 18c and 12c

I normally write an article for each conference presentation I do, but my presentation by this name is a series of live demos, so an article isn't really appropriate. Instead here is a links page to all the articles referenced by the conference presentation of the same name.

This is not supposed to be an exhaustive list of new features, just some that stand out for me, and some that others may not have noticed.


  • JSON Data Guide (12.2)
  • SQL/JSON (12.2)
  • PL/SQL Objects for JSON (12.2)
  • Real-Time Materialized Views (12.2)
  • Row Limiting Clause (12.1)
  • Qualified Expressions (18)
  • Polymorphic Table Functions (18)
  • Approximate Query Processing (12.1, 12.2, 18)
  • Private Temporary Tables (18)
  • DBMS_SESSION.SLEEP (18)
  • External Table Enhancements (12.2 & 18)
  • Case Insensitive Queries (12.2)


Hope this helps. Regards Tim...  ( https://oracle-base.com/articles/misc/cool-new-features-for-developers-in-18c-and-12c )

Faster Insights with Cloudera Enterprise on Oracle Cloud Infrastructure

Qualified Expressions in PL/SQL in Oracle Database 18c

Qualified expressions provide and alternative way to define the value of complex objects, which in some cases can make the code look neater.

Syntax


  • Qualified Expressions with Record Types
  • Qualified Expressions with Associative Arrays



The basic syntax for a qualified expression is as follows

typemark(aggregate)
The typemark is the type name. The aggregate is the data associated with this instance of the type. The data can specified using positional or the named association syntax. That all sounds a bit complicated, but it's similar to using a constructor for a object and will be obvious once you see some examples.

Qualified Expressions with Record Types
Records with large numbers of columns can be a little clumsy to work with. Qualified expressions can simplify code in some circumstances.

The following example shows three ways to populate a record in Oracle 18c. The first method, available in previous releases, involves a direct assignment to each column in the record variable. The second method uses a qualified expression where the aggregate uses positional notation. The third example uses a qualified expression where the aggregate uses the named association syntax.

DECLARE
  TYPE t_rec IS RECORD (
    id   NUMBER,
    val1 VARCHAR2(10),
    val2 VARCHAR2(10),
    val3 VARCHAR2(10),
    val4 VARCHAR2(10),
    val5 VARCHAR2(10),
    val6 VARCHAR2(10),
    val7 VARCHAR2(10),
    val8 VARCHAR2(10),
    val9 VARCHAR2(10)
  );

  l_rec t_rec;
BEGIN
  -- Pre-18c - Direct assignment to record columns.
  l_rec.id   := 1;
  l_rec.val1 := 'ONE';
  l_rec.val2 := 'TWO';
  l_rec.val3 := 'THREE';
  l_rec.val4 := 'FOUR';
  l_rec.val5 := 'FIVE';
  l_rec.val6 := 'SIX';
  l_rec.val7 := 'SEVEN';
  l_rec.val8 := 'EIGHT';
  l_rec.val9 := 'NINE';

  -- 18c - Qualified expression using position notation.
  l_rec := t_rec(1, 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE');

  -- 18c - Qualified expression using named association.
  l_rec := t_rec(id   => 1,
                 val1 => 'ONE',
                 val2 => 'TWO',
                 val3 => 'THREE',
                 val4 => 'FOUR',
                 val5 => 'FIVE',
                 val6 => 'SIX',
                 val7 => 'SEVEN',
                 val8 => 'EIGHT',
                 val9 => 'NINE');
END;
/
The first and last examples show clearly which columns gets which values, but they take a bit more space. The qualified expression using position notation is more compact, but relies on you knowing the order of the columns. In this case it's easy as the type if declared directly above. It would be less obvious if the type were defines in a package specification.

Things look a little different if we are only dealing with a subset of the columns. In the following example the qualified expression using named association looks neater, but still similar to the direct assignment to the record columns.

DECLARE
  TYPE t_rec IS RECORD (
    id   NUMBER,
    val1 VARCHAR2(10),
    val2 VARCHAR2(10),
    val3 VARCHAR2(10),
    val4 VARCHAR2(10),
    val5 VARCHAR2(10),
    val6 VARCHAR2(10),
    val7 VARCHAR2(10),
    val8 VARCHAR2(10),
    val9 VARCHAR2(10)
  );

  l_rec t_rec;
BEGIN
  -- Pre-18c - Direct assignment to record columns.
  l_rec.id   := 1;
  l_rec.val1 := 'ONE';
  l_rec.val9 := 'NINE';

  -- 18c - Qualified expression using position notation.
  l_rec := t_rec(1, 'ONE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'NINE');

  -- 18c - Qualified expression using named association.
  l_rec := t_rec(id => 1, val1 => 'ONE', val9 => 'NINE');
END;
/
The difference becomes more apparent when the same variable is used for multiple sparse records, each referencing different columns in the record. In the following example the same record variable is used twice for each method. In the first pass the val1 and val9 columns are set. In the second pass the val2 and val8 columns are set. After each assignment the values of the val1 and val9 columns are displayed. The qualified expressions represent a new instance of the record, so all the unused columns are blanked explicitly or implicitly. Without the qualified expression it is up to the developer to blank the previous values manually.

SET SERVEROUTPUT ON
DECLARE
  TYPE t_rec IS RECORD (
    id   NUMBER,
    val1 VARCHAR2(10),
    val2 VARCHAR2(10),
    val3 VARCHAR2(10),
    val4 VARCHAR2(10),
    val5 VARCHAR2(10),
    val6 VARCHAR2(10),
    val7 VARCHAR2(10),
    val8 VARCHAR2(10),
    val9 VARCHAR2(10)
  );

  l_rec t_rec;
BEGIN
  -- Pre-18c - Direct assignment to record columns.
  l_rec.id   := 1;
  l_rec.val1 := 'ONE';
  l_rec.val9 := 'NINE';
  DBMS_OUTPUT.put_line('(1) Record1 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);

  l_rec.id   := 2;
  l_rec.val2 := 'TWO';
  l_rec.val8 := 'EIGHT';
  DBMS_OUTPUT.put_line('(1) Record2 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);

  -- 18c - Qualified expression using position notation.
  l_rec := t_rec(1, 'ONE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'NINE');
  DBMS_OUTPUT.put_line('(2) Record1 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);

  l_rec := t_rec(1, NULL, 'TWO', NULL, NULL, NULL, NULL, NULL, 'EIGHT', NULL);
  DBMS_OUTPUT.put_line('(2) Record2 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);

  -- 18c - Qualified expression using named association.
  l_rec := t_rec(id => 1, val1 => 'ONE', val9 => 'NINE');
  DBMS_OUTPUT.put_line('(3) Record1 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);

  l_rec := t_rec(id => 1, val2 => 'TWO', val8 => 'EIGHT');
  DBMS_OUTPUT.put_line('(3) Record2 val1 = ' || l_rec.val1 || '  val9 = ' || l_rec.val9);
END;
/
(1) Record1 val1 = ONE  val9 = NINE
(1) Record2 val1 = ONE  val9 = NINE
(2) Record1 val1 = ONE  val9 = NINE
(2) Record2 val1 =   val9 =
(3) Record1 val1 = ONE  val9 = NINE
(3) Record2 val1 =   val9 =


PL/SQL procedure successfully completed.

SQL>
We can even use a qualified expression in the definition of a default value. In the following example a procedure accepts a record type as a parameter, which has a default value specified using a qualified expression.

DECLARE
  TYPE t_rec IS RECORD (
    id   NUMBER,
    val1 VARCHAR2(10),
    val2 VARCHAR2(10)
  );

  PROCEDURE dummy (p_rec IN t_rec DEFAULT t_rec(id => 1, val1 => 'ONE')) AS
  BEGIN
    NULL;
  END;
BEGIN
  NULL;
END;
/


Perth APAC Groundbreakers tour - SQL Techniques




Qualified Expressions with Associative Arrays
When dealing with associative arrays we have the option of assigning values to the individual elements of the associative array, or creating a new associative array using a qualified expression. The following example uses a PLS_INTEGER as the index of the associative array.

DECLARE
  TYPE t_tab IS TABLE OF VARCHAR2(10) INDEX BY PLS_INTEGER;

  l_tab t_tab;
BEGIN
  -- Pre-18c - Direct assignment to elements of the collection.
  l_tab(1) := 'ONE';
  l_tab(2) := 'TWO';
  l_tab(3) := 'THREE';

  -- 18c - Qualified expression using named association.
  l_tab := t_tab(1 => 'ONE',
                 2 => 'TWO',
                 3 => 'THREE');
END;
/
This example uses a VARCHAR2 as the index of the associative array.

DECLARE
  TYPE t_tab IS TABLE OF VARCHAR2(10) INDEX BY VARCHAR2(10);

  l_tab t_tab;
BEGIN
  -- Pre-18c - Direct assignment to record columns.
  l_tab('IND1') := 'ONE';
  l_tab('IND2') := 'TWO';
  l_tab('IND3') := 'THREE';

  -- 18c - Qualified expression using named association.
  l_tab := t_tab('IND1' => 'ONE',
                 'IND2' => 'TWO',
                 'IND3' => 'THREE');
END;
/

Remember, the qualified expression creates a new instance of the associative array, so any previously defined elements are removed. In this example we create an associative array with three elements, then immediately assign a two element associative array. If we try to reference the element with index 2 we get a NO_DATA_FOUND exception.

SET SERVEROUTPUT ON
DECLARE
  TYPE t_tab IS TABLE OF VARCHAR2(10) INDEX BY VARCHAR2(10);

  l_tab t_tab;
BEGIN
  -- 18c - Qualified expression using named association.
  l_tab := t_tab(1 => 'ONE',
                 2 => 'TWO',
                 3 => 'THREE');

  l_tab := t_tab(1 => 'ONE',
                 3 => 'THREE');

  DBMS_OUTPUT.put_line('2=' || l_tab(2));
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.put_line('I knew this would cause a NDF error!');
END;
/
I knew this would cause a NDF error!

PL/SQL procedure successfully completed.

SQL>
In the following example a procedure accepts an associative array as a parameter, which has a default value specified using a qualified expression.

DECLARE
  TYPE t_tab IS TABLE OF VARCHAR2(10) INDEX BY VARCHAR2(10);

  PROCEDURE dummy (p_tab IN t_tab DEFAULT t_tab(1 => 'ONE', 2 => 'TWO',3 => 'THREE')) AS
  BEGIN
    NULL;
  END;
BEGIN
  NULL;
END;
/

Sangam 18 - Database Development: Return of the SQL Jedi



The best upcoming features in Oracle Database 19c

By DBA RJ in Events, Oracle Database General

In the Oracle Open World 2018 event that happened in San Francisco last week, from October 22nd to 25th, much has been said about the trends and strategy paths that Oracle is taking in both OCI and in Oracle Database.

Melbourne Groundbreakers Tour - Hints and Tips



As we DBA's are always excited about the upcoming features, I will share below some of the main things that I've spotted on OOW. Please note that this can change, and we don't even have a beta release yet.

1 - Stability
First of all, it was very clear that Oracle's main focus for the 19c database will be stability. This will be the final release for the "12cR2" family. So it was repeated multiple times: "don't expect to see many new features in this release", what in my opinion is really great.

Since 12.1.0.1, Oracle has been implementing a lot of core changes in Oracle Database (like multi-tenancy, unified audit, etc) and it's still very hard nowadays to find a stable 12 release to recommend. 12.1.0.2 is my favorite one, however many bugs are unfixed and it lacks a secure PDB layout (PDB escape techniques are pretty easy to explore). 18c will probably be ignored by all as it was a "transition" release, so I hope that 19c becomes the real stable one, as 11.2.0.4 was for 11g release family. Let's see...

Perth APAC Groundbreakers tour - 18c features



Now comes the real features...
2 - Automatic Indexing
This is indeed the most important and one of the coolest features I've even seen in Oracle DB. Once this kind of automation is implemented and released, it will open doors to many other product automations (like automatic table reorganization, automatic table encryption or anything you can imagine).

The automatic indexing methodology will be based on a common approach to manual SQL Tuning. Oracle will capture the SQL statements, identify the candidate indexes and evaluates the ones that will benefit those statements. The whole process is not something simple.

Basically, Oracle will first create those indexes as unusable and invisible (metadata only). Then, outside the application workflow, oracle will ask the optimizer to test if those candidate indexes improve the SQL performance. In case the performance is better for all statements when indexed is used, it will become visible. If performance is worse, it remains invisible. And if it only performs better for some statements, the index is only marked visible for those SQLs (via SQL Patch, maybe).



The automation will also drop the indexes that become obsoleted by the newly created indexes (logical merge) and also remove the indexes that were created automatically but have not been used in a long time. Everything is customizable. For more details, we need to wait for the Beta Release!

3 - Real-time Stats + Stats Only Queries
With those features, you will be able to turn on the real-time stats for some of your database objects and it will be possible to run some SQLs that will query only the object stats, not doing a single logical read! Cool, isn't it?

4 - Data-guard DML Redirect
When you have a physical standby, opened in read-only mode, and plug in it some type of report tool that needs to create an underlying table or insert some log lines to operate, you have a problem. With this feature, you can define some tables (or maybe schema, it's not clear yet) and you will be able to run DMLs on them. So Oracle will redirect that DML to your primary and reflect the changes on your standby, not impacting those tools. This can be dangerous if not configured properly but will also allow us to do many new things.

5 - Partial JSON Update support
When you update a JSON data column, currently Oracle needs to upload the whole new column value to the database and validates. With this, we will now be able to update just a part (like a tag) of a json data.

6 - Schema-only Oracle accounts
With Oracle 18c, it was introduced the passwordless accounts. This means that you could connect to your schema using only a sort of external authentication like Active Directory. Now oracle has gone further, creating the true concept of Schema Only account (meaning there will be no way to authenticate).



7 - DB REST API
Oracle is trying to make the whole Oracle Database "rest aware", meaning that in a very soon future you will be able to perform ALL kinds of DB operations using REST API (like creating a database, creating a user, granting a privilege or adding a new listener port).

8 - Partitioned Hybrid Tables
Remember in very old times when we didn't have partitioned table, and had to implement partition manually using views + UNION ALL of many tables? Thanks god since 8 (released in 1997) we don't need it. Now Oracle finally did one step further, and you can have a partitioned hybrid table, meaning each partition can be of a different type or source (like one partition is external table and other is a traditional data table).

With Oracle 18 XE limited to 12GB data, this feature will be cool as we will probably be able to offload some of the data externally.

9 - EZConnect Improvements
EZConnect is something very useful to make fast connection calls without requiring a TNS. Problem is that, until now, if you want to use some value pairs likes SDU, RETRY_COUNT, CONNECT_TIMEOUT, this wasn't possible and you would end-up using TNS. Now in 19c you will be able to write something like:

sqlplus soe/soe@//salesserver1:1521/sales.us.example.com?connect_timeout=60&transport_connect_timeout=30&retry_count=3

It will also allow to enable multiples hosts/ports in the connection string (typically used in load-balancing client connections).



10 - Some other cool features
There are many other features that we have to wait for the Beta release to understand better. Below are some of them:

Improvements for count distinct and group by queries
Sharding now supports multiple PDB shards in a CDB
SQL JSON Enhancements
RAT and ADDM at PDB level
Data Dictionary Encryption
Database Vault Operations Control
Web SQLDeveloper

Sangam 18 - The New Optimizer in Oracle 12c




Final thoughts...
As I said, compared to Oracle 12R1, 12R2 or 18c, Oracle reduced a lot the total number of features introduced. That's why I'm excited for 19c, this is the first time in a while that I hear Oracle saying that will invest in stability. Hope this is true.

If you want to test 19c before the others, subscribe in Oracle Beta Program at https://pdpm.oracle.com/.

Sangam 18 - The Groundbreaker Community



More Information:

http://www.oracle.com/us/products/database/autonomous-database-strategy-wp-4124741.pdf

https://go.oracle.com/LP=78880?elqCampaignId=166416&src1=:ow:o:s:feb:AutonomousDB&intcmp=WWMK180723P00010:ow:o:s:feb:AutonomousDB

https://www.oracle.com/database/autonomous-database.html

https://blogs.oracle.com/database/oracle-database-18c-:-now-available-on-the-oracle-cloud-and-oracle-engineered-systems

https://blogs.oracle.com/database/

Oracle Database 18c : Now available on the Oracle Cloud and Oracle Engineered Systems

https://blogs.oracle.com/database/oracle-database-18c-:-now-available-on-the-oracle-cloud-and-oracle-engineered-systems

We’ve covered some of the bigger changes in Oracle Database 18c but there are many more that we don’t have space to cover here. If you want a more comprehensive list take a look at the new features guide here.

https://docs.oracle.com/en/database/oracle/oracle-database/18/newft/new-features.html

You can also find more information on the application development tools here

http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

http://www.oracle.com/technetwork/developer-tools/rest-data-services/overview/index.html

http://www.oracle.com/technetwork/developer-tools/sqlcl/overview/sqlcl-index-2994757.html

http://www.oracle.com/technetwork/developer-tools/apex/overview/index.html

If you’d like to try out Oracle Database 18c you can do it here with LiveSQL

https://livesql.oracle.com/apex/livesql/file/index.html

For More information on when Oracle Database 18c will be available on other platforms please refer to Oracle Support Document 742060.1

























Share:

0 reacties:

Post a Comment