2 окт. 2012 г.

Oracle Database новой версии - new features (short list)

Посетив пять (!) докладов посвященных новым возможностям очередной версии СУБД спешу сообщить вам их список. Пока коротко, что удалось запомнить, безусловно потом будет глубокое и подробное описание в постах и в презентациях.

Oracle Database core:
1) В таблицах поля типа varchar2, nvarchar2 и raw могут иметь размер до 32K
2) Data Redaction - маскирование данных прямо на лету, в процессе выборки в приложение
3) Упоминавшаяся ранее Pluggable Database. Для ее поддержки были доработы многие механизмы СУБД, например Resource Manager, чтобы распределять аппаратные ресурсы между базами в контейнере, также были расширены возможности RMAN
4) Встроенный автоматический ILM. Очень мощная технология. Был отдельный семинар посвященный только ей.
5) Невидимые колонки (invisible columns)
6) Переименование файлов данных в online
7) Поддержка автоинкрементных полей (identity column) в таблицах
8) Автоматический сбор локальной статистики (в пределах сессии) для временных таблиц
9) Динамическое изменение отдельных шагов плана (например замена Nested Loops на Hash Join), если после выполнения оптимизатор понял что ошибся.
10) Поддержка фразы "Top N" в запросах.
11) Локальные последовательности, с которыми можно работать на standby-БД
12) Сжатие трафика SQL*Net
13) Возможность записи в временные таблицы на standby-БД

Oracle PL/SQL в новой версии СУБД:
1) Переменные привязки передаваемые в динамический блок могут иметь неSQL-типы (boolean, record и PL/SQL-массивы)
2) Права и роли теперь могут выдаваться непосредственно PL/SQL-объекту (функции, процедуре, типу и пакету). Помимо всего прочего появляется дополнительная защита от SQL-инъекции.
3) Декларативное ограничение видимости вызова PL/SQL-объектов. Теперь не нужно применять описанный мною workaround ! (http://www.igormelnikov.com/2012/07/protect-plsql-api-by-data-vault.html)
4) Декларация UDF-функции прямо в теле запроса (в фразе with) для устранения переключения контекста между SQL и PL/SQL движками. Добавлена специальная прагма компилятора pragma udf для уже существующих функций. Отдельно было сказано, что SQL-движок не содержит в себе свою PL/SQL VM, а просто компилятор генерирует дополнительную информацию для упреждающего формирование контекста вызова PL/SQL-функции в SQL-машине!
5) В Edition base redefinition версионируемость может включается на уровне объекта. В пределах одной схемы теперь потенциально версионируемыми может быть только часть объектов !
6) Функции теперь могут возвращать неявный курсор (например как в MS SQL Server) Пакет dbms_sql расширен для возврата и чтения таких курсоров на уровне PL/SQL. Расширены клиентские библиотеки OCI, ODP.Net и JDBC для работы с такими курсорами на стороне клиента.
7) Внешние библиотеки доступны только через объект Directory, а не через явное указание пути к файлу как это было ранее.
8) Наследование привилегий (INHERIT PRIVILEGES) создателя для IR-функций. Применяется когда вызывающий имеет более высокие права чем создатель и нужно ограничить в правах такую функцию.

Также много нового ждет нас в технологии RAC. Завтра рассказ про Application Continuity и Global Data Services, а также про новые фичи в ASM !

2 комментария: