Продолжительность: 2 дня
Предварительные знания:
- знакомство с ОС Unix;
- уверенное владение SQL (знакомство с PL/pgSQL не обязательно, но полезно);
- PostgreSQL в объеме курса DBA1.
Какие навыки будут получены:
- детальное понимание механизмов планирования и выполнения запросов;
- настройка параметров экземпляра, связанных с производительностью;
- поиск проблемных запросов и их оптимизация.
Каждый учебный день состоит из нескольких блоков, включающих как теоретический материал, так и выполнение практических работ.
День 1
- Демобаза «Авиаперевозки»
- Обзор демонстрационной базы данных
Практическая работа
- Выполнение запросов
- Общие подходы к оптимизации
- Простые запросы и этапы их обработки
- Расширенные запросы
- Подробнее о планировании
Практическая работа
- Последовательный доступ
- Последовательное сканирование (Seq Scan)
- Параллельные планы выполнения
- Параллельное сканирование (Parallel Seq Scan)
- Агрегация при параллельном выполнении
- Команда EXPLAIN
Практическая работа
- Индексный доступ
- B-деревья
- Индексное сканирование
- Исключительно индексное сканирование
Практическая работа
- Сканирование по битовой карте
- Сканирование по битовой карте
- Сравнение эффективности разных методов доступа
Практическая работа
День 2
- Соединение вложенным циклом
- Общие соображения о соединениях
- Соединение вложенным циклом
- Вычислительная сложность
- Вложенный цикл в параллельных планах
- Модификации: левые, правые, полуи антисоединения
Практическая работа
- Соединение хешированием
- Соединение хешированием
- Использование оперативной памяти и временных файлов
- Группировка с помощью хеширования
Практическая работа
- Соединение слиянием
- Соединение слиянием
- Использование памяти при сортировке
- Запросы с сортировкой
- Группировка с помощью сортировки
Практическая работа
- Статистика
- Базовая статистика
- Наиболее частые значения и гистограммы
- Расширенная статистика
- Статистика для индексов по выражениям
- Сбор статистики
- Использование статистики для оценки кардинальности и селективности
Практическая работа
10.Профилирование
- Профилирование как инструмент для поиска узких мест
- Выбор подзадачи для профилирования
- Средства построения профиля
Практическая работа
11.Приемы оптимизации
- Пути оптимизации
- Статистика
- Настройки, влияющие на планирование и выполнение
- Схема данных
- Физическое расположение данных
- Изменение запросов
Практическая работа