Краткий обзор версий Oracle 12c - 21c

Oracle12c Release1: 

Первый выпуск oracle 12c состоялся в июле 2013 года. Буква "c’ здесь обозначает облако. Это первая база данных, предлагаемая для покупки Oracle с облачными вычислениями. Она имеет многопользовательскую архитектуру, которая фактически упрощает консолидацию без внесения каких-либо изменений в приложение. Помимо этого, в нем есть хранилище столбцов в памяти, сопоставление с шаблоном SQL и собственный JSON.

Multitenant Architecture

Самым крупным нововведением  Oracle 12c безусловно является Multitenant Architecture. Сам Oracle преподносит эту возможность в основном как средство консолидации и снижения расходов.
 
 Суть технологии состоит в возможности запустить несколько независимых баз (pluggable database, PDB) в рамках одного инстанса (container database, CDB). Каждая база имеет свой набор схем и табличных пространств, но при этом у них общая SGA и один набор серверных процессов. Есть возможность клонировать pluggable database, как в рамках одного контейнера, так и между контейнерами. Вот эту возможность и будем использовать для создания копий тестовых баз и экономии ресурсов.

Oracle 12c Release2

Он был выпущен в сентябре 2016 года. Он сохранил более ранние функции, но некоторые функции, такие как облачный сервис Exadata и облако у клиента.

Oracle 18c

Как и в предыдущем выпуске, здесь также ‘c’ обозначает облако. Эта версия была выпущена в облаке в феврале 2018 года. На самом деле это следующая итерация Oracle 12c. Она содержит множество улучшений. Она не содержит каких-либо кардинальных новых функций, таких как 12c с поддержкой 11g, а только постепенные улучшения. Улучшения обеспечиваются такими функциями, как полиморфные табличные функции.

Oracle 19c

Он был выпущен в апреле 2019 года для Linux и других платформ и в июне 2019 года в облаке. Функции включали автоматическое создание индексов, SQL-запросы к хранилищам объектов и ведение статистики в режиме реального времени.

Oracle 21c

Инновационный выпуск Oracle Database, известный как Oracle Database 21c, был выпущен в сентябре 2021 года. В нем представлены функции, включая повышенную безопасность, встроенную поддержку JSON, автоматическое индексирование, таблицы блокчейна, автоматизированное машинное обучение и встроенную поддержку JSON. В нем также предусмотрены улучшения в обработке данных в памяти, многопользовательской архитектуре и встроенной поддержке постоянной памяти.

Поддержка нативного типа данных JSON

12.1.0.2 Внедрение поддержки JSON позволяет JSON хранить JSON в VARCHAR2 или LOB (Clob или Blob). Гибкость, обеспечиваемая моделью дизайна схемы может использоваться для создания приложений, но она может извлечь выгоду из функции базы данных Oracle.

Вы можете использовать стандартный SQL для запроса документа JSON, использовать функцию расширенного анализа для индексации одного атрибута или всего документа, а также обработать миллиарды документов JSON параллельно. Вы также можете получить доступ к базе данных Oracle, используя Java, Node.js, Python, C Language и Rest Soda API, и рассматривать ее как базу данных NOSQL.

В 21C нативный тип данных JSON улучшает поддержку JSON. Нет необходимости анализировать JSON при чтении или обновлении операций, но аналитично только при вставке. JSON хранится во внутреннем бинарном формате, что делает скорость доступа быстрее. Скорость чтения и обновления увеличилась в 45 раз, а скорость обновления очень больших документов JSON увеличилась к 2030 раза.

Что нового в 21 Oracle?
  • Появился тип JSON.
     Он хранит данные в двоичном виде аналогично jsonb в Postgresql.
     Получить значения полей можно не только функциями, вроде json_value, но и через точку:

WITH j AS

  (SELECT JSON(

     '{ "f" : "Иванов",

        "i": "Иван",

        "o": "Иванович",

        "address": {"street": "Московская"}) }')

     AS json_column FROM DUAL)

  SELECT j.json_column.name, j.json_column.address FROM j;

  • Поддержка JavaScript.
     JavaScript доступен только в PL/SQL. Он формируется в виде текста и выполняется через пакет dbms_mle.
     Судя по сигнатуре метода eval и названию пакета (MLE = Multilingual Engine), авторы явно планируют добавить поддержку других языков. Подробнее см. документацию на пакет: https://docs.oracle.com/en/database/ora ... s_mle.html.
  • В PL/SQL появились итераторы.
  • Доработан модуль Oracle Machine Learning for SQL.
  • Появились blockchain таблицы.
     Это обычные heap-таблицы, в которых нельзя удалять записи определенное время и есть встроенные средства контроля того, что данные не менялись. См https://docs.oracle.com/en/database/ora ... 79556.html.
  • Result cache начинает работать только если функция вызывалась с такими аргументами за последнее время не менее RESULT_CACHE_EXECUTION_THRESHOLD раз. Какой интервал времени используется пока неясно. (Кто может уточнить пишите)
  • В типах данных можно использовать PL/SQL типы, например, boolean или pls_integer. Сохранять в базе их по-прежнему нельзя. Тип должен быть объявлен как not persistable:
     https://docs.oracle.com/en/database/ora ... 0BBBC57034.
  • Доработан модуль Oracle Machine Learning for SQL.

Oracle 21c это инновационный релиз, сопровождаться должен около 2-х лет, а стабильным по прежнему остаётся релиз 19c сопровождение которого планировалось до 2027 года.

https://mljar.com/blog/postgresql-machine-learning/

https://www.oracle.com/database/technologies/datawarehouse-bigdata/oml4sql.html