Оптимизация SQL запросов для разработчиков
В курсе рассматриваются различные методы исследований, которые охватывают несколько уровней детализации выполнения базой данных Oracle операторов SQL. Рассмотрены различные способы, при помощи которых осуществляется доступ к данным и которые имеют различную эффективность в зависимости от окружающей обстановки. Также изучаются имеющиеся у пользователей возможности, позволяющие убедиться в том, что оптимизатором выбран наилучший способ доступа к данным. Затронуты темы секционирования, изучаются преимущества, которые может дать использование подсказок оптимизатору, переменных связывания и различных типов индексов.
Аудитория
- разработчики приложений;
- разработчики хранилищ данных;
- технические консультанты;
- специалисты служб технической поддержки.
По окончании курса
- После успешного усвоения материала этого курса слушатели научатся
- идентифицировать проблемные операторы SQL;
- выполнять модификацию операторов SQL с целью оптимизации их выполнения;
- выполнять трассировку приложений;
- понимать, почему оптимизатор запросов принимает те или иные решения при выборе путей доступа к данным;
- интерпретировать планы выполнения;
- эффективно использовать подсказки оптимизатору;
- создавать нагрузочные тесты
Модуль 1: Изучение архитектуры базы данных Oracle
- Обзор архитектуры сервера базы данных Oracle
- Обзор структур оперативной памяти сервера базы данных Oracle
- Роль фоновых процессов
- Автоматическое управление разделяемой памятью
- Автоматическое управление памятью выполняемых операторов SQL
- Автоматическое управление памятью
- Архитектура внешней памяти базы данных
- Логические и физические структуры базы данных Oracle
Модуль 2: Введение в процесс настройки операторов SQL
- Причины неэффективного выполнения операторов SQL
- Имеющиеся программные решения по отслеживанию текущей производительности
- Обзор утилит, предназначенных для мониторинга и настройки производительности
- Страницы производительности Enterprise Manager, предназначенные для настройки в ответ на снижение производительности
- Настройка производительности с учетом разделения времени реакции на время потребления CPU и время ожидания
- Масштабируемость и ее взаимосвязь с дизайном, реализацией и конфигурированием приложения
- Наиболее распространенные ошибки, допускаемые при проектировании и программировании приложений
- Методология упреждающей настройки производительности
Модуль 3: Введение в оптимизатор запросов
- Структурированный язык запросов (SQL)
- Обзор представления оператора SQL, его реализации и выполнения
- Синтаксический анализ оператора SQL: обзор
- Для чего нужен оптимизатор?
- Шаги оптимизации во время операции жесткого разбора (hard parse)
- Оптимизатор по стоимости (Cost-Based Optimizer – CBO)
- Контроль поведения оптимизатора
- Функциональные возможности оптимизатора и их зависимость от выпуска базы данных Oracle
Модуль 4: Типы операций доступа, выбираемые оптимизатором
- Определение способов доступа к строкам
- Основные структуры данных и пути доступа
- Полный просмотр таблицы
- Индексы: обзор
- Использование индексов; влияние столбцов, для которых допустимы неопределенные значения (NULL)
- Битовые индексы, составные и невидимые индексы
- Рекомендации по использованию и управлению индексами
- Кластеры
Модуль 5: Интерпретация плана выполнения
- Что такое план выполнения
- Взаимосвязи между наиболее важными динамическими представлениями производительности
- Автоматизированный репозиторий рабочей нагрузки AWR
- Создание отчета о выполненных операторах SQL на основе данных AWR
- Обзор мониторинга операторов SQL
- Чтение более сложных планов выполнения
- Повторный просмотр плана выполнения
- Взгляд на то, что происходит по ту сторону плана выполнения (что по сути стоит за планом выполнения)
Модуль 6: Учебный пример: преобразование типа “звезда”
- Модели схемы данных типа “звезда” и “снежинка”
- План выполнения без преобразования типа “звезда”
- Получение строк из таблицы фактов с ее соединением с одной и всеми таблицами измерений
- Соединение промежуточного результирующего набора строк с таблицами измерений
- Использование битовых индексов соединений (Bitmap Join Indexes)
Модуль 7: Статистики оптимизатора
- Описание статистик оптимизатора и типы статистик
- Обзор статистики по группе столбцов
- Обзор статистик по выражению
- Сбор системных статистик
- Предпочтения статистик: обзор
- Обзор динамической выборки, осуществляемой оптимизатором (Optimizer Dynamic Sampling)
- Блокировка статистик
Модуль 8: Использование переменных связывания (bind variables)
- Разделение курсоров и различные значения литералов
- Разделение курсоров и переменные связывания
- Усовершенствования в механизме разделения курсоров
- Обзор адаптивного разделения курсоров
- Взаимодействие с механизмом адаптивного разделения курсоров
Модуль 9: Использование подсказок оптимизатору
- Обзор подсказок оптимизатору
- Типы подсказок оптимизатору
- Указание подсказок в операторах SQL
- Правила использования подсказок оптимизатору
- Рекомендации по использованию подсказок
- Категории подсказок оптимизатору
- Подсказки, указывающие цели оптимизации и используемые подходы
- Дополнительные подсказки оптимизатору
Модуль 10: Трассировка приложения
- Проблема сквозной трассировки приложения
- Местоположение диагностических трассировочных файлов
- Что такое служба (service)?
- Использование служб совместно с пользовательскими приложениями
- Трассировка собственного сеанса
- Содержимое трассировочного файла, созданного при помощи средства SQL Trace
- Форматирование трассировочных файлов SQL Trace: обзор
- Запуск утилиты TKPROF
Модуль 11: Автоматизация настройки операторов SQL
- Автоматическая настройка операторов SQL
- Проблемы, связанные с трассировкой приложений
- Обзор консультанта по настройке операторов SQL (SQL Tuning Advisor)
- Устаревшая или отсутствующая статистика объектов
- Профилирование операторов SQL
- Технологический процесс настройки плана выполнения оператора SQL и создание его профиля
- Панель управления Database Control и консультант SQL Tuning Advisor
- Приведение в действие выданных рекомендаций
- Слушатели должны иметь знания в объеме курса «Основы SQL». Опыт использования SQL желателен.
Запись на курс
Код курса | EA-11gTSQL |
---|---|
Длительность | 4д (32ч) |
Код экзамена | |
Стоимость без НДС | 18 000 грн. |
Ближайшие даты | |
|