Данный курс поможет слушателям научиться определять и настраивать неэффективные SQL операторы. Будут рассмотрены методы, позволяющие получить различные уровни информации о том, как сервер базы данных Oracle выполняет SQL операторы. Это позволит слушателям определять причины неэффективности SQL операторов.
Слушатели изучат различные способы доступа к данным, узнают о том, какие из них являются наиболее эффективными в тех или иных обстоятельствах, и как обеспечить использование наилучшего метода. Будут рассмотрены инструменты для трассировки на разных уровнях, преимущества использования переменных привязки и различных типов индексов.
Аудитория
- Разработчики PL/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. Интерпретация плана выполнения
- Что такое план выполнения?
- Взаимосвязи между наиболее важными динамическими представлениями производительности.
- Автоматизированный репозиторий рабочей нагрузки AWR.
- Создание отчета о выполненных операторах SQL на основе данных AWR.
- Обзор мониторинга операторов SQL.
- Чтение более сложных планов выполнения. Повторный просмотр плана выполнения.
- Взгляд на то, что происходит по ту сторону плана выполнения (что по сути стоит за планом выполнения).
Модуль 5. Типы операций доступа, выбираемые оптимизатором
- Определение способов доступа к строкам.
- Основные структуры данных и пути доступа.
- Полный просмотр таблицы.
- Индексы: обзор. Использование индексов; влияние столбцов, для которых допустимы неопределенные значения (NULL).
- Битовые индексы, составные и невидимые индексы.
- Рекомендации по использованию и управлению индексами.
- Кластеры.
Модуль 6. Учебный пример: преобразование типа "звезда"
- Модели схемы данных типа "звезда" и "снежинка".
- План выполнения без преобразования типа "звезда".
- Получение строк из таблицы фактов с ее соединением с одной и всеми таблицами измерений.
- Соединение промежуточного результирующего набора строк с таблицами измерений. Использование битовых индексов соединений (Bitmap Join Indexes).
Модуль 7. Статистики оптимизатора
- Описание статистик оптимизатора и типы статистик.
- Обзор статистики по группе столбцов.
- Обзор статистик по выражению. Сбор системных статистик. Предпочтения статистик: обзор. Обзор динамической выборки, осуществляемой оптимизатором (Optimizer Dynamic Sampling). Блокировка статистик.
Модуль 8. Использование переменных связывания (bind variables)
- Разделение курсоров и различные значения литералов.
- Разделение курсоров и переменные связывания.
- Переменные связывания в SQL*Plus и Enterprise Manager.
- Усовершенствования в механизме разделения курсоров.
- Обзор адаптивного разделения курсоров.
- Взаимодействие с механизмом адаптивного разделения курсоров.
Модуль 9. Использование подсказок оптимизатора
- Обзор подсказок оптимизатору.
- Типы подсказок оптимизатору.
- Указание подсказок в операторах SQL.
- Правила использования подсказок оптимизатору.
- Рекомендации по использованию подсказок.
- Категории подсказок оптимизатору.
- Подсказки, указывающие цели оптимизации и используемые подходы
- Дополнительные подсказки оптимизатору.
Модуль 10. Трассировка приложения
- Проблема сквозной трассировки приложения.
- Местоположение диагностических трассировочных файлов.
- Что такое служба (service)?
- Использование служб совместно с пользовательскими приложениями.
- Трассировка собственного сеанса.
- Содержимое трассировочного файла, созданного при помощи средства SQL Trace. Форматирование трассировочных файлов SQL Trace: обзор. Запуск утилиты TKPROF.
Модуль 11. Автоматизация настройки операторов SQL
- Проблемы, связанные с трассировкой приложений.
- Обзор консультанта по настройке операторов SQL (SQL Tuning Advisor).
- Устаревшая или отсутствующая статистика объектов.
- Профилирование операторов SQL.
- Технологический процесс настройки плана выполнения оператора SQL и создание его профиля.
- Панель управления Database Control и консультант SQL Tuning Advisor.
- Приведение в действие выданных рекомендаций.