Автор курса: Мирончик Игорь Янович сlipperIgor@gmail.com (496)573-34-22 Курс лекций: Новые особенности Oracle 12c для разработчиков SQL запросов и PL/SQL модулей. 3 дня (24 академических часа) Аудитория: Профессиональные разработчики PL/SQL запросов и модулей, которые будут использовать новые возможности сервера базы данных 12с Необходимая подготовка: знание PL/SQL, основы настройки и функционирования сервера базы данных в объеме моего курса «Профессиональный SQL и PL/SQL». Стандартные курсы Oracle SQL и PL/SQL, основы Java, основы оптимизации SQL запросов, работа с планами выполнения SQL запросов. Цель: по окончанию курса слушатели смогут использовать новые возможности сервера базы данных Oracle 12c в своих разработках, а так же инициировать DBA на изменение архитектуры сервера для повышения его эффективности. Задачи: показать новые архитектурные особенности сервера Oracle 12с, его новый функционал для разработчика SQL запросов и PL/SQL модулей. Вопросы курса: 1. Архитектура сервера с точки зрения разработчика запросов. Несколько баз данных в одном контейнере, которые используют общие ресурсы сервера. Корневая и подключаемая база данных. Принципы взаимодействия. Пример создания и подключения базы данных к общему контейнеру. Клонирование базы данных для проведения тестов разработчика. Триггеры или команды для автоматического запуска подключаемых баз данных Архитектура используемой памяти сервером. Новые разделы памяти. InMemory область для работы с таблицами в памяти. Сравнение с областью ResultCache. Глобальные и локальные пользователи. «Перемещение» сессий пользователя между схемами в подключаемых базах данных. 2. Порядок выполнения SQL запросов Построение плана запроса. Адаптивные планы и адаптивные статистики. Изменение плана выполнения запроса в процессе его выполнения. Параметры базы данных, воздействующие на адаптивные планы и адаптивные статистики. Result Cache и таблицы InMemory - сравнение. Индексы и InMemory таблицы - когда что использовать. Особенности подготовки сервера для работы с таблицами в памяти. Сравнение доступа к таблицам InMemory и к таблицам, запросы к которым используют индексы. Особенности 12с при работе с индексами. Несколько индексов для одной колонки. Невидимые индексы. Подсказки оптимизатору для работы с невидимыми индексами. 3. Новые особенности 12с при построении таблиц. Расширение типа данных varchar2 до 32к. Невидимые колонки. Виртуальные колонки. Идентификационные колонки. Использование детерминированных функций в виртуальных колонках. Версии функций и вычисляемые колонки таблиц на практических примерах. Подготовка сервера базы данных для работы с вычисляемыми колонками. Сокрытие информации в колонках от непривилегированных пользователей. Пакет dbms_redact на практических примерах. Определение и перераспределение политик доступа к информации в колонках таблиц. ILM и ADO механизмы сервера для управления жизненным циклом данных. Механизмы для архивации. Перевод таблицы в режим архивации строк. Управление сессией пользовательского процесса для отображения или сокрытия архивированных строк. ILM-ADO механизмы для управления партициями таблиц - обзор. Партиционные, интервально - ссылочные таблицы, создание и управление. Локальные индексы для партиций, включение и отключение части локального партиционного индекса. Каскадное удаление данных в ссылочных партиционных таблицах. Упраление партиционными сегментами. 4. Выполнение SQL запросов. Боковые запросы и транзитивная передача параметров в подзапросы. Передача параметров в PipeLined процедуры в подзапросах. OuterJoin и передача параметров. Ограничение количества возвращаемых строк из запросов - Fetch size, SizeOf, Sample и другие возможности в управлении количеством обрабатываемых строк. PL/SQL функции и процедуры в SQL запросах. Сравнение вызовов с использованием java клиента. Различия между встроенными функциями и InLine функциями в SQL запросах. Динамический SQL и возвращение результатов из хранимых процедур и функций пример java клиента Назначение полномочий на использование таблиц через роли для PL/SQL модулей. Представления и PL/SQL модули с правами вызывающего. JSON в базе данных. Функции для извлечения информации из JSON документов. Ограничения на CLOB поля в таблицах для проверки целостности хранения JSON данных. Преобразование JSON данных к реляционным аналогам и обратно.