Описание курса:
В этом курсе рассматриваются различные методы исследований, которые охватывают несколько уровней детализации выполнения базой данных Oracle операторов SQL. Слушатели изучают различные способы, при помощи которых осуществляется доступ к данным и которые имеют различную эффективность в зависимости от окружающей обстановки. Также изучаются имеющиеся у пользователей возможности, позволяющие убедиться в том, что оптимизатором выбран наилучший способ доступа к данным. В данном курсе освещены темы секционирования, изучаются преимущества, которые может дать использование подсказок оптимизатору, переменных связывания и различных типов индексов. Курс проводится под руководством инструктора в форме лекций (на русском языке) и практических занятий.
Слушатели изучают:
- Как идентифицировать неэффективно выполняющиеся операторы SQL
- Основные принципы работы оптимизатора запросов
- Как осуществлять трассировку приложений
- Мониторинг выполнения операторов SQL в режиме реального времени
- Как интерпретировать планы выполнения
Аудитория курса:
- Разработчики приложений
- Разработчики хранилищ данных
- Разработчики
- Технические консультанты
- Специалисты служб технической поддержки
Предварительная подготовка:
Знание основ SQL, опыт работы в операционной системе UNIX или Windows
Содержание курса:
Изучение архитектуры базы данных Oracle
- Обзор архитектуры сервера базы данных Oracle
- Обзор структур оперативной памяти сервера базы данных Oracle
- Роль фоновых процессов
- Автоматическое управление разделяемой памятью
- Автоматическое управление памятью выполняемых операторов SQL
- Архитектура внешней памяти базы данных
- Логические и физические структуры базы данных Oracle
Введение в процесс настройки операторов SQL
- Причины неэффективного выполнения операторов SQL
- Имеющиеся программные решения по отслеживанию текущей производительности
- Обзор утилит, предназначенных для мониторинга и настройки производительности
- Страницы производительности Enterprise Manager, предназначенные для настройки в ответ на снижение производительности
- Настройка производительности с учетом разделения времени реакции на время потребления CPU и время ожидания
- Масштабируемость и ее взаимосвязь с дизайном, реализацией и конфигурированием приложения
- Наиболее распространенные ошибки, допускаемые при проектировании и программировании приложений
- Методология упреждающей настройки производительности
Введение в оптимизатор запросов
- Структурированный язык запросов (SQL)
- Обзор представления оператора SQL, его реализации и выполнения
- Синтаксический анализ оператора SQL: обзор
- Для чего нужен оптимизатор?
- Шаги оптимизации во время операции жесткого разбора (hard parse)
- Оптимизатор по стоимости (Cost-Based Optimizer - CBO)
- Контроль поведения оптимизатора
- Функциональные возможности оптимизатора и их зависимость от выпуска базы данных Oracle
Типы операций доступа, выбираемые оптимизатором
- Определение способов доступа к строкам
- Основные структуры данных и пути доступа
- Полный просмотр таблицы
- Индексы: обзор
- Использование индексов; влияние столбцов, для которых допустимы неопределенные значения (NULL)
- Битовые индексы, составные и невидимые индексы
- Рекомендации по использованию и управлению индексами
- Кластеры
Интерпретация плана выполнения
- Что такое план выполнения
- Взаимосвязи между наиболее важными динамическими представлениями производительности
- Автоматизированный репозиторий рабочей нагрузки AWR
- Создание отчета о выполненных операторах SQL на основе данных AWR
- Обзор мониторинга операторов SQL
- Чтение более сложных планов выполнения
- Повторный просмотр плана выполнения
- Взгляд на то, что происходит по ту сторону плана выполнения (что по сути стоит за планом выполнения)
Учебный пример: преобразование типа "звезда"
- Модели схемы данных типа "звезда" и "снежинка"
- План выполнения без преобразования типа "звезда"
- Получение строк из таблицы фактов с ее соединением с одной и всеми таблицами измерений
- Соединение промежуточного результирующего набора строк с таблицами измерений
- Использование битовых индексов соединений (Bitmap Join Indexes)
Статистики оптимизатора
- Описание статистик оптимизатора и типы статистик
- Обзор статистики по группе столбцов
- Обзор статистик по выражению
- Сбор системных статистик
- Предпочтения статистик: обзор
- Обзор динамической выборки, осуществляемой оптимизатором (Optimizer Dynamic Sampling)
- Блокировка статистик
Использование переменных связывания (bind variables)
- Разделение курсоров и различные значения литералов
- Разделение курсоров и переменные связывания
- Переменные связывания в SQL*Plus и Enterprise Manager
- Усовершенствования в механизме разделения курсоров
- Обзор адаптивного разделения курсоров
- Взаимодействие с механизмом адаптивного разделения курсоров
Использование подсказок оптимизатору
- Обзор подсказок оптимизатору
- Типы подсказок оптимизатору
- Указание подсказок в операторах SQL
- Правила использования подсказок оптимизатору
- Рекомендации по использованию подсказок
- Категории подсказок оптимизатору
- Подсказки, указывающие цели оптимизации и используемые подходы
- Дополнительные подсказки оптимизатору
Трассировка приложения
- Проблема сквозной трассировки приложения
- Местоположение диагностических трассировочных файлов
- Что такое служба (service)?
- Использование служб совместно с пользовательскими приложениями
- Трассировка собственного сеанса
- Содержимое трассировочного файла, созданного при помощи средства SQL Trace
- Форматирование трассировочных файлов SQL Trace: обзор
- Запуск утилиты TKPROF
Автоматизация настройки операторов SQL
- Автоматическая настройка операторов SQL
- Проблемы, связанные с трассировкой приложений
- Обзор консультанта по настройке операторов SQL (SQL Tuning Advisor)
- Устаревшая или отсутствующая статистика объектов
- Профилирование операторов SQL
- Технологический процесс настройки плана выполнения оператора SQL и создание его профиля
- Панель управления Database Control и консультант SQL Tuning Advisor
- Приведение в действие выданных рекомендаций
Приобретаемые навыки:
После прохождения тренинга слушатели будут уметь:
- Идентифицировать проблемные операторы SQL
- Выполнять модификацию операторов SQL с целью оптимизации их выполнения
- Выполнять трассировки приложений
- Определять, почему оптимизатор запросов принимает те или иные решения при выборе путей доступа к данным
- Интерпретировать планы выполнения
- Использовать эффективное использование подсказок оптимизатору
- Создавать нагрузочные тесты
Документы об окончании курса / Материалы и сертификаты:
Сертификат Учебного Центра / печатные учебные материалы