В курсе "Oracle глазами разработчика" изучаются принципы работы БД Oracle, необходимые разработчикам OLTP систем для написания оптимального кода. Слушателям будут открыты внутренности СУБД, после чего разработчики перестанут воспринимать базу данных, как «магический» черный ящик.

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

Слушатели изучают:

Необходимая предварительная подготовка:

Рекомендуемая предварительная подготовка:

Цель курса:

Аудитория курса:

Программа

1. Вступление.

Для кого предназначен данный курс. Что такое оптимизация OLTP систем, зачем она нужна, различия OLTP и DWH систем. Почему oracle? «Магическая» настройка fast=true. Лишние операторы в коде, «ядро» sql и pl\sql, переключение контекстов. Независимость от базы данных.

2. Структура СУБД

Что представляет собой СУБД. Файлы и процессы. Структура памяти. Буферный кеш. Сегменты базы данных. Логическая структура хранилища данных Oracle.

3. Таблицы и индексы oracle. Триггеры и последовательности

Что такое таблица. Основные типы таблиц. Отметка максимального уровня заполнения. Физические свойства таблиц. Настройка таблиц разработчиком, параметр pct used, табличные пространства, взаимодействие с DBA. Что такое rowid для разработчика. Партицирование таблиц с точки зрения разработчика. Временные таблицы. Типы индексов. Структура b-tree индекса. Null-значения в индексе. Область применения. Использование(и не использование) индекса CBO. Индекс – не панацея. Триггеры. ORA-04091: table is mutating, trigger/function may not see it. Последовательности.

4. Журналы базы данных и транзакции

Что такое транзакция? Фиксация и откат(savepoint\ savepoint to). Автономные транзакции. Управление транзакциями. Журналы повторного выполнения и отмены.

5. Оптимизация запросов

Что такое CBO и план запроса? Метод доступа к таблицам и методы соединения таблиц. Для чего нужны переменные привязки? Как изменить план запроса. Что такое ASH представление и работа с ним. Метод «черного» ящика по оценки производительности запроса в приложении. Null значения в запросах. Индексный доступ к таблицам. Full scan vs index range scan. Хинты, оправданность их использования. ORA-01555 "Snapshot too old". Причины, методы «лечения».