Oracle 12 что это

Обновлено: 04.07.2024

  • Усовершенствованное умолчание (Improved defaults);
  • Расширение типов данных (Bigger datatypes);
  • Первые n запросов (Top-n queries)

Усовершенствованное умолчание
(Improved Defaults)

Возможность создания значения столбца по умолчанию существует в SQL уже значительное время. Эта функциональность, однако, была несколько ограничена. Например, были ограничения в использовании объектов SEQUENCE для задания значений по умолчанию. Кроме того, если значение по умолчанию должно было быть вставлено или изменено во всей таблице, нужно было либо использовать ключевое слово DEFAULT в SQL-предложении или полностью исключить этот столбец из предложения INSERT. При этом добавлялся новый столбец, допускавший NULL-значения по умолчанию, был в автономном режиме. В Oracle Database 12 c эти предельные и функциональные ограничения сняты.

Отменено ограничение: Генерирование значения по умолчанию из SEQUENCE.

В Oracle Database 12 c , теперь можно использовать атрибут последовательности .NEXTVAL для создания значения столбца по умолчанию. Например:

SQL> create sequence s; Sequence created. SQL> create table t 2 ( x int 3 default s.nextval 4 primary key, 5 y varchar2(30) 6 ); Table created. SQL> insert into t (x,y) 2 values ( default, 'hello' ); 1 row created. SQL> insert into t (y) 2 values ( 'world' ); 1 row created. SQL> select * from t; X Y -------- -------- 1 hello 2 world

этот код показывает, что можно создать значение по умолчанию для столбца первичного ключа, использую значение последовательности и без использования триггера, как было в прошлом. Таким образом, в Oracle Database 12 c , фраза S.NEXTVAL DEFAULT в предложении CREATE TABLE, заменит следующий процедурный код:

SQL> create trigger t 2 before insert on t 3 for each row 4 begin 5 if (:new.x is null) 6 then 7 :new.x := s.nextval; 8 end if; 9 end; 10 / Trigger created.

В дополнение к использованию ссылки на последовательность для создания значения по умолчанию столбца, альтернативно можно использовать фразу IDENTITY, которая формирует последовательность и связывает эту последовательность с таблицей. Например, это предложение CREATE TABLE:

SQL> create table t 2 ( x int 3 generated as identity 4 primary key, 5 y varchar2(30) 6 ) 7 / Table created.

Это приведет к тем же данным при загрузке в таблицу T без явного создания последовательности (как вы это сделали бы в предложении CREATE TABLE, в которой явно прописывается DEFAULT S.NEXTVAL). Можно увидеть эту последовательность, если посмотреть на перечень схемных объектов:

SQL> select object_name, object_type 2 from user_objects 3 / OBJECT_NAME OBJECT_TYPE ------------------ ------------- T TABLE ISEQ$$_90241 SEQUENCE SYS_C0010233 INDEX

Но учтите, что если таблицу удалить и вычистить (purge) ее из корзины, то последовательность также будет удалена:

SQL> drop table t purge; Table dropped. SQL> select object_name, object_type 2 from user_objects 3 / no rows selected

Поскольку сохраняется identity (идентификатор) имеющейся последовательности, можно управлять всеми настройками базовой последовательности. Например, такое предложение CREATE TABLE:

SQL> create table t 2 ( x int 3 generated by default 4 as identity 5 ( start with 42 6 increment by 1000 ) 7 primary key, 8 y varchar2(30) 9 ) 10 / Table created.

показывает, что можно управлять значениями START WITH и INCREMENT BY. Кроме этого, вместо простого GENERATED, предложением GENERATED BY DEFAULT можно переопределить identity value (значение идентификатора) по умолчанию идентичности. Ниже я это продемонстрирую, вставив значение 1, а потом еще две строки, что позволит сгенерировать идентификаторы как значения по умолчанию:

SQL> insert into t (x,y) 2 values ( 1, 'override' ); 1 row created. SQL> insert into t (x,y) 2 values ( default, 'hello' ); 1 row created. SQL> insert into t (y) 2 values ( 'world' ); 1 row created. SQL> select * from t; X Y ---------- ----------- 1 override 42 hello 1042 world

Улучшенная функциональность: Cоздание значения по умолчанию для NULL-столбца.

В Oracle Database 12 c теперь можно создавать значение столбца по умолчанию не только при использовании ключевого слова DEFAULT или полностью исключить столбец из предложения INSERT, но и тогда, когда вы явно задаете при установке значение столбца NULL.

В прошлом, если столбец содержал значение по умолчанию, нужно было или использовать ключевое слово DEFAULT в предложениях INSERT/UPDATE или полностью исключить столбец из предложений INSERT/UPDATE. Это означало, что для использования значения по умолчанию в определенные, но не другие, моменты времени, нужно было выполнить, по крайней мере, два предложения INSERT/UPDATE с трудными для понимания конструкциями if/then/else. Например, если столбец X содержал значение по умолчанию, и вы иногда требовалось вставить в него другое значение, а иногда этого делать было не надо, то требовался код, похожий на этот:

if (x is_to_be_defaulted) then insert into t (x, … ) values ( DEFAULT, … ); else insert into t (x, … ) values ( :x, … ); end if;

Конечно, это было может быть вполне терпимо, если значение по умолчанию нужно было создавать для одного столбца, но если у вас таких столбцов было два, три или более? Подумайте, сколько комбинаций INSERTs и UPDATEs вам нужно было бы провести со сложными блоками if/then/else, чтобы обеспечить такую возможность. Теперь в Oracle Database 12 c можно задавать Значение столбца по умолчанию, когда в нем явно задано значение NULL. Вот пример:

SQL> create table t 2 ( x number 3 generated as identity 4 primary key, 5 y varchar2(30), 6 z number default ON NULL 42 7 ) 8 / Table created.Используя фразу z number default ON NULL 42 , я определяю, что столбец Z получает значение по умолчанию не только, если я явно устанавливаю для него DEFAULT или исключаю его из предложения INSERT, но и тогда, когда я его явно заявляю NULL, как в данном примере: SQL> insert into t (y) 2 values ( 'just y' ); 1 row created. SQL> insert into t (y,z) 2 values ( 'y with z set to null', null ); 1 row created. SQL> insert into t (y,z) 2 values ( 'y and z', 100 ); 1 row created. SQL> select * from t; X Y Z ---- ---------------------- ---- 1 just y 42 2 y with z set to null 42 3 y and z 100

Как можно видеть, столбец Z теперь в обоих случаях создается со значением по умолчанию 42. Кроме того, при декларировании Z был определен как NOT NULL, хотя я прямо не сказал:

SQL> select column_name, nullable 2 from user_tab_columns 3 where table_name = 'T' 4 order by column_id 5 / COLUMN_NAME N ----------- - X N Y Y Z N

Дальнейшие оперативные операции: Улучшение добавления столбца

В Oracle Database 11g можно было быстро добавить столбец в таблицу, если он обладал значением по умолчанию и был определен как NOT NULL. (Arup Нанда написал об этом в bit.ly/16tQNCh.) Тем не менее, если вы попытаетесь добавить столбец со значением по умолчанию, и этот столбец допускает null-значения, операция ADD COLUMN может занять значительное количество времени, сгенерировать большое количество undo- и redo- записей, а также заблокировать всю таблицу на время всей операции. В Oracle Database 12 c это время, объем и блокировка больше не являются составляющими подобного процесса.

SQL> create table t 2 as 3 select * 4 from all_objects; Table created. SQL> exec show_space('T') … Full Blocks . 1,437 Total Blocks. 1,536 Total Bytes. 12,582,912 Total MBytes. 12 … PL/SQL procedure successfully completed

Теперь я добавляю столбец к таблице T, и этот столбец будет содержать большое значение по умолчанию. Так как я добавил столбец CHAR (2000), он всегда будет занимать все 2,000 байтов, поскольку данные типа CHAR всегда фиксированной ширины, при необходимости дополнены пробелами. Таблица T имеет более чем 87,000 записей, так что добавление столбца, разумеется, должно было бы занять значительное количество времени, но как вы увидите, в Oracle Database 12c это добавление совершается практически мгновенно:

SQL> set timing on SQL> alter table t add (data char(2000) default 'x'); Table altered. Elapsed: 00:00:00.07

Я выполнил идентичную операцию в Oracle Database 11 g и наблюдал следующие данные:

SQL> set timing on SQL> alter table t add (data char(2000) default 'x'); Table altered. Elapsed: 00:00:28.59

Понятно, что эта значительная разница - время автономной работы. Далее, если я посмотрю на размер таблицы с дополнительным столбцом в Oracle Database 12 c :

SQL> exec show_space('T') … Full Blocks . 1,437 Total Blocks. 1,536 Total Bytes. 12,582,912 Total MBytes. 12 … PL/SQL procedure successfully completed.

Я увижу, что таблица вообще не разрослась. Однако под управлением Oracle Database 11 g это же испытание показывает, что таблица разрастается приблизительно от 9 Мб до 192 Мб. Кроме того, в Oracle Database 11 g , почти каждая строка в таблице мигрировала, потому что размер строк существенно изменился. В предыдущих версиях такую таблицу, скорее всего, надо было бы реорганизовать, но не в Oracle Database 12 c .

Расширение типов данных (Bigger Datatypes)

База данных Oracle 8 принесла с собой значительное увеличение размера данных типа VARCHAR - от 255 байт (в Oracle7) до 4000 байт. Теперь версия Oracle Database 12c увеличивает размер с 4,000 байт до 32К для строковых типов SQL-данных - VARCHAR2, NVARCHAR2 и RAW в соответствии с их PL/SQL-эквивалентами.

По умолчанию, автоматически эта новая возможность не включена, администратор базы данных должен прописать в файле init.ora новый параметр MAX_STRING_SIZE с значением EXTENDED. Как только это сделано, можно выполнять такие предложения, как:

SQL> create table t ( x varchar(32767) ); Table created.

а затем использовать строчные функции, такие как RPAD, LPAD и TRIM:

SQL> insert into t values ( rpad('*',32000,'*') ); 1 row created. SQL> select length(x) from t; LENGTH(X) -------------- 32000

В прошлой версии функции RPAD и в других встроенных строчных функциях можно было бы вернуть лишь 4000 байт, но теперь эти функции возвращают до 32К байтов типа VARCHAR2.

За кулисами Oracle Database 12 c при использовании больших объектов (LOB) хранятся большие строки и данные raw (сырых) типов. Если вставляемая строка занимает до 4000 байт, база данных будет хранить эти данные в блоке таблицы базы так же, как это происходило с данными унаследованного типа VARCHAR2. Если строка превышает 4,000 байт, база данных прозрачно сохранит ее вне линии в LOB-сегменте и индексе.

Топ-N запросов и разбивка (Top-N Queries and Pagination)

Из многих тысяч вопросов на Ask Tom (asktom.oracle.com), наиболее популярными являются: "Как я могу получить N строк из всех M строк результирующего набора" (Как разбить набор результатов на страницы) и "Как я могу получить первые N записей результирующего набора." На самом деле я написал несколько статей в журнале Oracle на протяжении многих лет, чтобы ответить на эти вопросы ("On Top-N On Top-n and Pagination Queries" и "On ROWNUM and Limiting Results"). Эти статьи демонстрировали, как выполнить эти подвиги, но рассказанные методы были громоздки, неинтуитивны и не всегда портативны.

Oracle Database 12 c включает в себя поддержку положений ANSI-стандарта FETCH FIRST/NEXT и OFFSET - вместе они называются фразами ограничения записей. Такая фраза легко позволит вам получить первые N записей из результирующего набора или, в качестве альтернативы, первые N записей после пропуска (сдвига на) в наборе записей, что позволяет легко нумеровать страницы набора результатов. На диаграмме на рисунке 1 показан синтаксис фразы ограничения количества записей.

Рисунок 1: Синтаксис фразы ограничения количества записей

Такая фраза ограничения просто добавляется в конце любого SQL SELECT-предложения, чтобы выбрать (fetch) определенное количество записей, и нет необходимости в нескольких уровнях внутренних представлений и фразах WHERE, которые должны быть тщательно позиционированы, как случилось бы с ROWNUM и ROW_NUMBER ().

Например, если у меня есть таблица T:

SQL> create table t 2 as 3 select * from all_objects; Table created. SQL> create index t_idx on t(owner,object_name); Index created.

и я хочу получить первые пять строк после сортировки по OWNER (владелец) и OBJECT_NAME (имя_объекта), нужно только добавить FETCH FIRST N ROWS в запросе SQL, показанном на листинге 1.

Листинг 1: Простой запрос на выборку SELECT, использующий FETCH FIRST

SQL> select owner, object_name, object_id 2 from t 3 order by owner, object_name 4 FETCH FIRST 5 ROWS ONLY; … ------------------------------------------------------------------------------ / Id /Operation / Name/Rows /Bytes /Cost (%CPU)/Time / ------------------------------------------------------------------------------ / 0/SELECT STATEMENT / / 5 / 1450 / 7 (0)/00:00:01/ /* 1/ VIEW / / 5 / 1450 / 7 (0)/00:00:01/ /* 2/ WINDOW NOSORT STOPKEY / / 5 / 180 / 7 (0)/00:00:01/ / 3/ TABLE ACCESS BY INDEX ROWID/T /87310 / 3069K/ 7 (0)/00:00:01/ / 4/ INDEX FULL SCAN /T_IDX/ 5 / / 3 (0)/00:00:01/ ------------------------------------------------------------------------------ Predicate Information (identified by operation id): ----------------------------------------------------------------- 1 - filter("from$_subquery$_003"."rowlimit_$$_rownumber"<=5) 2 - filter(ROW_NUMBER() OVER ( ORDER BY "OWNER","OBJECT_NAME")<=5)

Как можно видеть из информационного предиката в листинге 1, фраза ограничения строки ROW_NUMBER () прозрачно внутри переписывает запрос для использования аналитики. Фраза ограничения строки, короче говоря, делает это намного легче, чем это вы вручную делали в прошлом.

Для нумерации страниц в результирующем наборе - получение разом N строк с конкретной страницы из набора результата - я добавляю фразу OFFSET. В листинге 2 я пропускаю первые пять строк и получаю следующие пять строк из результирующего набора.

Листинг 2: Простой запрос SELECT с OFFSET FETCH

SQL> select owner, object_name, object_id 2 from t 3 order by owner, object_name 4 OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; … ----------------------------------------------------------------------------- / Id /Operation /Name /Rows /Bytes /Cost (%CPU)/Time / ----------------------------------------------------------------------------- / 0/SELECT STATEMENT / / 5/ 1450 / 7 (0)/00:00:01/ /* 1/ VIEW / / 5/ 1450 / 7 (0)/00:00:01/ /* 2/ WINDOW NOSORT STOPKEY / / 5/ 180 / 7 (0)/00:00:01/ / 3/ TABLE ACCESS BY INDEX ROWID/T /87310/ 3069K/ 7 (0)/00:00:01/ / 4/ INDEX FULL SCAN /T_IDX/ 5/ / 3 (0)/00:00:01/ ----------------------------------------------------------------------------- Predicate Information (identified by operation id): ----------------------------------------------------------------------- 1 - filter("from$_subquery$_003"."rowlimit_$$_rownumber"<=CASE WHEN (5>=0) THEN 5 ELSE 0 END +5 AND "from$_subquery$_003"."rowlimit_$$_rownumber">5) 2 - filter(ROW_NUMBER() OVER ( ORDER BY "OWNER","OBJECT_NAME")<=CASE WHEN (5>=0) THEN 5 ELSE 0 END +5)

Как видно на листинге 2, база данных скрытно переписывает этот запрос для использования встроенных представлений и аналитики, снова автоматически, вместо бывших ранее малопонятных и сложных построений.

Отметим, что в реальной жизни вы должны использовать переменные связывания, а не жестко заданные константы, поэтому вместо числа 5, как я сделал, нужно было бы применить связываемую переменную 5.

Database 12c

Oracle Database 12c: подключайтесь к облаку

Что говорят клиенты

Что говорят клиенты

Во всех версиях своей СУБД Oracle Database компания Oracle стремится предоставить клиентам более простые способы стандартизации, консолидации и автоматизации служб баз данных в облаке. Более десяти лет назад были представлены такие инновационные технологии, как Oracle Real Application Clusters и Oracle Automatic Storage Management, сейчас эта линейка продолжается продуктом Oracle Multitenant, который позволяет ИТ-подразделениям полностью использовать все преимущества облачных вычислений , в том числе совместное использование ресурсов, гибкость управления и снижение расходов.

Подключиться к облаку с Oracle Multitenant

Oracle Database 12c Webcast

Консолидация баз данных — важнейший шаг на пути перехода к облачным вычислениям. Oracle Database 12c значительно ускоряет и упрощает данный процесс, обеспечивая высокую плотность консолидации ну уровне разных схем и не требуя при этом изменения имеющихся приложений.

Чтобы сделать это возможным, одна комплексная контейнерная база данных теперь может обслуживать множество «подключаемых» баз. Каждая консолидированная или «подключенная» в комплексный контейнер база данных воспринимается приложениями точно так же, как и до консолидации. Консолидация не только ускоряет переход к облачным вычислениям, но и упрощает управление, что является огромным преимуществом для организаций, которым приходится управлять сотнями и даже тысячами баз данных.

Автоматизация и оптимизация жизненного цикла информации

Управляя жизненным циклом информации, работники среднестатистической компании обычно вручную перемещают и сжимают данные в разных уровнях систем хранения, исходя главным образом из времени хранения данных.

Oracle Database 12c меняет эту ситуацию благодаря технологии автоматической оптимизации данных (Automatic Data Optimization), которая учитывает не только возраст данных, но и характер их использования или «температуру», после чего автоматически перемещает данные на соответствующие уровни системы хранения и сжимает их.

Максимальная доступность и безопасность баз данных

Упрощенная консолидация баз данных: Oracle Multitenant

Database Consolidation

Oracle Database 12c, оснащенная более 500 новых возможностей, предоставляет клиентам Oracle все необходимое для облачных вычислений, работы с большими объемами данных, обеспечения безопасности и высокой доступности.

В процессе разработки новой версии Oracle Database компании Oracle было важно учесть две основные тенденции современной ИТ-индустрии. Во-первых, характерную для последних лет тенденцию изменения цены и доступных объемов оперативной памяти. Ведь стоимость оперативной памяти каждый год падает на 30 %, а типовой корпоративный сервер сегодня уже поставляется с объемом памяти 128 ГБ, причем многие серверы имеют 1 ТБ памяти. Это значит, что если научиться размещать базы данных непосредственно в оперативной памяти, то запросы к ним будут выполняться в десятки и сотни раз быстрее, что открывает возможность реализации бизнес-аналитики реального масштаба времени.


Во-вторых, важно помнить о том, что в условиях снижения затрат на ИТ разработчикам нужны новые инструменты, которые позволяют быстрее внедрять инновации и упрощать поддержку приложений. Так, например, для интеграции новых разработок с существующими корпоративными инфраструктурами разработчики уходят от монолитных приложений, сложных и тяжелых в разработке, в сторону архитектуры микросервисов, т. е. приложений, представляющих собой наборы независимо развертываемых сервисов. И для работы с новой архитектурой необходимо, чтобы база данных поддерживала новые инструменты и новые методы программирования.

Все это компания Oracle учла при разработке базы данных Oracle Database 12.1.0.2. Эта статья — обзор основных нововведений этой версии.

Начнем с того, что в 2013 г. компания Oracle выпустила версию Oracle Database 12c (версия 12.1.0.1), основными достоинствами которой стали снижение стоимости хранения, высокая доступность данных, простота консолидации баз данных и защита доступа к данным.

Говоря чуть подробнее, в этой версии появилась архитектура Oracle Multitenant, которая существенно облегчает консолидацию баз данных, ускоряет развертывание баз данных и позволяет управлять многими базами данных как одним целым — вместо администрирования сотен баз данных по отдельности администратор работает с одной базой данных, управляя многими базами данных, как одной. Все это сделало версию Oracle Database 12c на момент ее выпуска самой подходящей системой управления базами данных для облачных вычислений, особенно для SaaS-приложений, где особенно актуально скоростное создание новых баз данных по требованию пользователей, которое при поддержке технологии Snapshot Cloning (тонкое клонирование) занимает несколько минут.

Кроме того, в Oracle Database 12.1.0.1 появилась автоматическая оптимизация данных, сочетающая технологию «умного сжатия», которая автоматически выявляет блоки данных, к которым редко обращались («холодные» данные), и сжимает их, и технологию автоматизации многоуровневого хранения данных, которая автоматически переносит «холодные» данные на более дешевый уровень хранения.

Еще одна новая технология Oracle Database 12c, которая называется Data Guard Far Sync, обеспечивает нулевую потерю данных на больших расстояниях и позволяет держать резервные копии баз данных на большом удалении от основной базы данных. Дополнительный специальный экземпляр базы данных, не имеющий файлов данных, принимает изменения от основной базы данных в синхронном режиме и асинхронно передает эти изменения удаленным экземплярам базы данных, что обеспечивает и надежность синхронного режима, и производительность асинхронного режима.

Технология Application Continuity позволяет повторять аварийно прерванные транзакции — решая тем самым одну из главных проблем работы веб-приложений с базами данных. Технология делает отказ экземпляра базы данных прозрачным для веб-приложения и позволяет определить состояние последней транзакции. Если транзакция не прошла, она будет выполнена, а если она уже выполнена, то технология Application Continuity не позволяет выполнить ее повторно

Технология динамического маскирования данных Data Redaction прозрачная для приложений и позволяет задавать политики доступа к данным внутри базы данных. Данные остаются неизменными, но, в зависимости от прав конечного пользователя, его роли, он будет видеть только те данные, на доступ к которым он авторизован. Это позволяет приложениям прозрачно работать с базой данных, политика будет выполняться для всех приложений.

Наконец, в Oracle Database 12.1.0.1 была реализована мощная система анализа взаимосвязи строк Pattern Matching, которая позволяет анализировать тренды и находить в них статистические закономерности с помощью конструкций языка SQL. И это — не считая еще более пятисот других модификаций.

Уже в 2014 году компания Oracle выпустила Oracle Database 12.1.0.2, где эти возможности были улучшены и была добавлена новая опция Oracle In-Memory, самая важная.

При разработке In-Memory компания Oracle стремилась создать технологию, которая сделает возможной аналитику в реальном масштабе времени для оперативного принятия бизнес-решений. Крайне важно то, что если у конкурентов Oracle для использования их вариантов опции In-Memory нужна другая база данных, другие технологии, то опция Oracle Database In-Memory встроена в базу данных, включается буквально одним параметром, полностью прозрачна для приложений и совместима со всеми возможностями базы данных. Опыт использования этой опции заказчиками показывает, что обработка транзакций ускоряется в два раза, вставка строк происходит в три-четыре раза быстрее, чем обычно, запросы для аналитики действительно выполняются в реальном масштабе времени, практически мгновенно.

Смысл технологии в том, что рядом с привычным буферным кэшем, который хранит строки таблиц и блоки индексов, создаётся новая разделяемая область для данных в оперативной памяти, в которой они хранятся в колоночном формате (Рис. 1). Таким образом, технология использует и строчный, и колоночный форматы хранения в памяти для одних и тех же данных таблиц, причем данные одновременно активны и транзакционно согласованны. Все изменения сначала производятся в традиционном буферном кэше, после чего отражаются в колоночном кэше.

При этом в колоночном кэше отражаются только таблицы, индексы не кэшируется. Кроме того, если данные читаются, но не изменяются, то в буферном кэше хранить их незачем, но если данные изменяются, то они хранятся в обоих кэшах, буферном и колоночном. Поэтому In-Memory ускоряет работу аналитики, ведь для аналитики более эффективно именно колоночное хранение данных.

Кроме того, опция In-Memory позволяет избавиться от аналитических индексов без ущерба для производительности, при этом появится гибкость: экономится дисковое пространство, можно строить запрос по любому столбцу, который размещен в In-Memory, и для быстрой работы запросов не нужно строить дополнительные индексы.


Важным элементом Oracle Database In-Memory является аппаратная поддержка. В частности, технология поддерживает набор инструкций SIMD (Single Instruction Multiple Data Values), предназначенный для обработки графики, — In-Memory использует эти инструкции, если они встроены в процессор, для сравнения сразу нескольких значений столбца с предикатом, значительно ускоряя скорость сканирования столбца — до 1 млрд строк в секунду.

Но это далеко не все. Серверы Oracle SPARC M7 и T7, выпущенные в конце 2015 г., содержат аппаратную поддержку In-Memory. Для этого в процессоры М7 и Т7 добавлены модуль векторного сканирования базы данных, модуль декомпрессии данных In-Memory и модуль аппаратной защиты памяти, который реализует проверку доступа к данным в оперативной памяти в режиме реального времени, обеспечивающую защиту данных от вредоносных вторжений и ошибок программного кода.

Для того чтобы использовать Oracle In-Memory, достаточно задать размер буфера памяти In-Memory Column Store, указать, какие таблицы, секции, столбцы будут размещаться в этой памяти, перестартовать базу данных и удалить аналитические индексы, если они больше не требуются для обеспечения производительности приложения. In-Memory легко управлять из Oracle Enterprise Manager, где есть отдельная страница In-Memory Central, которая отображает распределение памяти между объектами и позволяет конфигурировать In-Memory Column Store. В последней версии Enterprise Manager 13с имеется инструмент In-Memory Advisor, поддерживаемый для версий баз данных 11.2.0.3 и выше, который анализирует существующую нагрузку базы данных и предоставляет список объектов, загрузка которых в In-Memory Column Store даст максимальный выигрыш.

Сравнительное тестирование Oracle Database 12c In-Memory и SAP HANA на одном и том же количестве ядер Intel продемонстрировало вдвое более высокую производительность Oracle Database 12, чем SAP HANA (Рис. 2, сверху). Сравнительное тестирование масштабируемости Oracle Database 12c In-Memory и SAP HANA показало, что Oracle Database 12c In-Memory гораздо лучше масштабируется, чем SAP HANA — практически линейно (Рис. 2, снизу).




Мы уже говорили о том, что от тяжелых монолитных приложений ИТ-отрасль переходит к веб-сервисам. Поскольку веб-сервисы все чаще обращаются друг к другу через REST интерфейс, компания Oracle предоставляет Java-приложение Oracle REST Data Services (ORDS), предоставляющее единый REST интерфейс для работы с СУБД Oracle (реляционные данные и JSON Document Store) и Oracle NoSQL Database. ORDS может использоваться как в автономном режиме, так и развёрнуто на серверах приложений WebLogic Server, Oracle Glassfish Server, Apache Tomcat. SQL Developer предоставляет удобную платформу для установки и настройки ORDS, в частности, он содержит мастер настройки, который автоматически создаёт REST-сервисы для доступа к таблицам базы данных. На Oracle Technology Network бесплатно доступна виртуальная машина VirtualBox с настроенными Big Data Lite Virtual Machine и сконфигурированными REST-сервисами. Поскольку один и тот же REST-вызов может применяться к различным базам данных, это повышает гибкость и скорость программирования, т.к. от разработчика не требуется знания SQL и специфики базы данных. В Oracle Database 12.1.0.2 встроена поддержка JSON-баз данных. REST-сервисы могут работать либо с JSON Document Store в базе данных версии 12с, либо с реляционными таблицами базы данных, которые представлены как REST Data Services, либо с NoSQL-базами данных.

Oracle Big Data Appliance — это кластеры, предназначенные для работы Hadoop и NoSQL баз данных. В отличие от остальных программно-аппаратных комплексов Oracle, эти системы разработаны совместно с компанией Cloudera, одним из ведущих поставщиков дистрибутива Hadoop. Вопреки распространенному заблуждению, такие системы нужны не только компаниям из Интернет-бизнеса, потому что сегодня с потребностью обработки гигантских объемов данных сталкиваются любые компании, которые должны заниматься глубоким анализом поведения клиентов, планировать высокоточную рекламу, объединять и анализировать данные из многих источников, в том числе неструктурированных, бороться с мошенничеством и т. д.

Oracle Big Data SQL в составе Oracle Big Data Appliance позволяет делать из Oracle Database 12с один быстрый SQL-запрос ко всем данным, хранящимся в Hadoop, реляционных и NoSQL базах данных. Oracle Big Data SQL — это новая архитектура, предлагающая мощный, высокопроизводительный SQL на Hadoop, с полным набором возможностей Oracle SQL на Hadoop и локальной обработкой SQL-запросов на узлах Hadoop. Архитектура предлагает простую интеграцию данных Hadoop ,Oracle Database и Oracle NoSQL, единую точку входа SQL для доступа ко всем данным, масштабируемые соединения между данными Hadoop и RDBMS.

Oracle NoSQL Database — это масштабируемая, высокопроизводительная, высокодоступная СУБД с прозрачной балансировкой нагрузки, весь объем данных в которой хранится в виде пар «ключ–значение».

Новые возможности Multitenant-баз данных версии 12.1.0.2 касаются в первую очередь клонирования PDB (pluggable db, подключаемых) баз данных. Часть табличных пространств теперь можно исключить из клонирования. Возможно клонирование только метаданных, что иногда требуется для разработки. Удаленное клонирование позволяет клонировать PDB базу данных между двумя контейнерными базами данных через database link. Наконец, появилось тонкое клонирование, основанное на встроенной в базу данных технологии Direct NFS и не зависящее от файловой системы.

Другие улучшения включают новое выражение SQL, которое позволяет делать агрегированные запросы по таблицам, которые расположены в нескольких подключаемых базах данных. Новая фраза «standbys» позволяет при создании подключаемой базы данных в явном виде задать или отменить создание резервной базы.

По Вашему запросу ничего не найдено.

Рекомендуем сделать следующее:

  • Проверьте правильность написания ключевых слов.
  • Используйте синонимы введенных Вами ключевых слов, например “приложение” вместо “программное обеспечение”.
  • Попробуйте воспользоваться одним из популярных поисковых запросов ниже.
  • Начните новый поиск.

Oracle Database 12c

Первая в мире база данных, разработанная для облака. При разработке последующих версий Oracle Database компания продолжает прилагать усилия, чтобы упростить стандартизацию, консолидацию и автоматизацию сервисов баз данных в облаке для своих заказчиков. Эта платформа поддерживает новые выпуски ведущей в отрасли базы данных, доступной как локально, так и в облаке. Самая последняя версия на сегодня — Oracle Database 19c .

Autonomous Database: устройтесь поудобнее, расслабьтесь и наслаждайтесь путешествием с Oracle.

Autonomous Database: устройтесь поудобнее, расслабьтесь и наслаждайтесь путешествием с Oracle.

Ознакомьтесь с новейшей СУБД — Oracle Database 19c

Ознакомьтесь с новейшей СУБД — Oracle Database 19c

СУБД Oracle Database обеспечивала управление данными на протяжении последних 40 лет. Предприятия во всем мире в течение последних десятилетий используют ее как основу для своих самых важных производственных процессов.

Oracle Database 19c включает в себя инновационные возможности предыдущих выпусков, которые легли в основу сервисов Oracle Autonomous Database Cloud Service, такие как Multitenant (контейнерная архитектура БД), обработка нагрузок в ОЗУ, поддержка JSON и т. д., с прицелом на расширение их числа.

Что такое Oracle Autonomous Database

Что такое Oracle Autonomous Database

Oracle Autonomous Database объединяет в себе опыт десятилетий работы по автоматизации и оптимизации платформ и новые технологии (включая машинное обучение), чтобы создать полностью автономную базу данных.

Oracle Autonomous Database самостоятельно обеспечивает свою работоспособность, безопасность и восстановление. Использование инновационных технологий упрощает работу, исключает человеческие ошибки и повышает надежность, безопасность и операционную эффективность, при этом снизив расходы до минимума. Благодаря средствам самообслуживания, доступным на современной облачной платформе Oracle, специалисты по ИТ могут полностью изменить ИТ-операции, исключить времязатратную рутину по обслуживанию баз данных и сфокусироваться на задачах, приносящих прибыль.

Ресурсы для Oracle Database 12c

Ресурсы для Oracle Database 12c

Oracle продолжает предоставлять новейшие локальные и облачные решения отличного качества, которые удовлетворяют требованиям к управлению базами данных компаний любого размера: от прошлых версий СУБД, включая Oracle Database 12c, до новой Oracle Database 19c.

Дополнительные сведения об Oracle Database 12c, включая сведения о возможностях и документацию, см. ниже.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook


1- Введение

В этой статье я ознакомлю вас с структурой Oracle 12c и облачными функциями недавно представленные в этой версии.

2- 4 особенные свойства Oracle 12c

Oracle Database 12c имеет 4 выделяющихся функций:

  • Во-первых, она может объединить компонентную базу данных 252 (так же является продуктом Oracle) в 1 контейнер базы данных (container database), через который оптимизирует вычислительные ресурсы и сокращает расходы аппаратной инфраструктуры. Если в предыдущей системе Database, 1 сервер мог установить максимум 50 Database нужно было 20GB памяти, то с новой технологией Database 12c, емкость ресурсов памяти могла быть уменьшена в 6 раз.
  • Во-вторых, автоматизировать механизм оптимизации данных, чтобы контролировать систему хранения. Автоматизирована манипуляция перемещения данных в подходящий уровень хранения с технологией Data Heat Map: основан на термальной карте который отмечает частоту вхождения данных. Решение Oracle помогает бизнесу решать о перемещении данных с меньшим доступом в подходящее устройство хранения (малодоступные данные будут перемещены в устройства с меньшим расходом, многодоступные данных будут перемещены в устройства с высокой скоростью и дорогими расходами).
  • В-третьих, имеется функция редактирования (Redaction), которая помогает скрыть данные, если данные предназначены для последнего пользователя. Например код кредитной карты, Работники в Отделе Персонаа могут видеть все цифры кода карты, но другие отделы могут видеть только последние 4 цифры. Данная защитная функция помогает организациям, бизнесам чувствовать себя безопаснее при соединении их базы данных в облаке.
  • В-четвертых, помогает бизнесам найти возможность от обработки больших объемов данных (Big Data) включая неструктурированные данные (например социальные сети) и данные с обычной структурой

3- Структура Oracle 12c

Для начала нам нужно сравнить структуру Oracle 11g и 12c

  1. Программное обеспечение Oracle
  2. И Database

После установки Oracle Database 11g вы можете создать один или более Database (Обычно вам нужно создать только один Database). В каждом Database вы можете создать 1 или более SCHEMA, каждая SCHEMA это система таблиц, и объектов как function (функция), procedure (процедура), package, . Структура Oracle 11g похожа на следующую иллюстрацию:


Oracle 12c имеет реальные изменения в структуре по сравнению с Oracle 11g. Oracle 12c это на самом деле облачная база данных.

Понятие database в 11g похоже на Container Database (CDB) в 12c. То есть после установки программы Oracle 12c вы можете создать 1 или более Container Database (CDB). (На самом деле нужен только 1).

В Oracle 12C есть новое понятие - это CDB$ROOT (Или еще называется CDB Root), CDB$Root это специальный Plugin Database, объект находящийся в CDB. SCHEMA могут быть прикреплены к CDB$ROOT. Или другие обычные Plugin Database (PDB) прикреплены к CDB$ROOT. Каждый Plugin Database содержит 0 или более SCHEMA.


PDB$SEED это шаблонный (Template) Plugin database который используется как шаблон (по умолчанию) чтобы создать новый Plugin Database. Вы конечно можете взять любой Plugin Database для шаблона и создать новый Plugin Database.

Я покажу команды создания нового Plugin из SEED или из какого-нибудь 1 PDB далее в этой статье.

В плане хранения на жестком диске, Oracle 12c имеет структуру как в иллюстрации ниже:


Каждая база данных Oracle имеет контрольную папку, это бинарный файл который записывает физическую структуру базы данных. Контрольные папки включают:

  • Название базы данных
  • Название и местоположение свзязанных datafiles и файлов redo log
  • Временная метка создания базы данных
  • Последовательный номер в журнале
  • Информация Checkpoint

Все контрольные файлы должны быть готовы для записи сервером базы данных Oracle в любое време когда база данных открыта. Без контрольного файла, база данных не может быть смонтирована и восстановление будет трудным.

Datafiles это физические фалы сохраненные на диске. Эти файлы используются для хранения даннах на диске.

Tempfiles это физические файлы сохраненные на диске. Эти файлы используются для временного хранения данных на диске.

Самая важная структура для восстановления операций это redo log, который включает два или более предопределенных файлов (preallocated files), который хранит все изменения выполненные в базе данных. Каждый объект базы данных Oracle имеет один связанный redo log для защиты базы данных в случае неполадки объекта.

4- Работа с Oracle через SQLPlus

SQL Plus это простой инструмент Console позволяющий вам выдавать команды SQL. Обычно мы работаем с более визуальным инструментом (не имеется после установки Oracle), вам нажно установить дополнительно, это может быть программа предоставленная третьей стороной.

Чтобы войти в SQLPlus вы можете войти через CMD:



4.1- Проверить является ли Database Container Database (CDB)

При установке Oracle 12c если вы не выбрали установку вида nếu Container Database (CDB), то ваш database будет являться CDB, и напротив это будет Non-CDB (Похож на модель Oracle 11g)

На SQLPlus вы можете проверить является ли ваш Database CDB или нет.


4.2- Проверить ID или название текущего Container


4.3- Информация Container в Container Database (CDB)

View V$CONTAINERS предоставляет информацию про все Container внутри CDB, включая коренной Plugin (CDB$Root) и все Plugin DB (PDB). Чтобы посмотреть эту информацию, вы можете сделать запрос от обычного user, и этот user находится в коренном Container (CDB$Root). Если user находится в PDB, этот view покажет информацию только про этот PDB.


4.4- Посмотреть информацию Plugin Database (PDB)

Два view CDB_PDBS и DBA_PDBS предоставляют информацию про PDBs связанные с CDB, включая статус каждого PDB. Чтобы посмотреть эту информацию, запрос должен быть сделан обычным user на коренном Container (CDB$Root). Если user находится в container который является PDB, все запросы на данном View не вернут результата.

Читайте также: