11gTSQL

Oracle Database 11g: SQL Tuning Workshop


Данный курс поможет слушателям научиться определять и настраивать неэффективные 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.
  • Приведение в действие выданных рекомендаций.