Курс: PostgreSQL 13. Оптимизация запросов: PP.13.QPT
В курсе «PostgreSQL 13. Оптимизация запросов» детально разбираются механизмы планирования и выполнения запросов, рассматривается настройка параметров экземпляра, связанных с производительностью, и изучаются возможности для поиска проблемных запросов и их оптимизации. Курс является общим для разработчиков и администраторов.
Курс состоит из теоретической части и практики, включает демонстрацию работы на «живой» системе и выполнение практических заданий.
Отличия от предыдущей версии курса:
- учтены нововведения версий PostgreSQL 11, 12 и 13,
- увеличен объем материала и демонстраций.
Ориентирован: Данный курс предназначен для администраторов баз данных и разработчиков
Предварительный уровень подготовки:
- знакомство с ОС Unix;
- уверенное владение SQL (знакомство с PL/pgSQL не обязательно, но полезно);
- знания и навыки PostgreSQL в объеме курса DBA1 «Администрирование PostgreSQL. Базовый курс» или DEV1 «Разработка серверной части приложений PostgreSQL 12. Базовый курс» (рекомендуется обучение)
Продолжительность: 2 дня, 16 академических часов.
Программа курса
Тема 1. Демобаза «Авиаперевозки»
- Цели и задачи
- Предметная область и общая схема демобазы
- Подробное описание объектов
Тема 2. Выполнение запросов
- Общие подходы к оптимизации.
- Простой протокол и этапы обработки запросов.
- Расширенный протокол.
- Подробнее о планировании.
Тема 3. Последовательный доступ
- Последовательное сканирование (Seq Scan).
- Параллельные планы выполнения.
- Параллельное сканирование (Parallel Seq Scan).
- Агрегация при параллельном выполнении.
- Команда EXPLAIN.
Тема 4. Индексный доступ
- B-деревья.
- Сканирование индекса.
- Сканирование только индекса.
- Индексы с дополнительными столбцами.
- Тонкости сортировки.
- Устранение дубликатов.
Тема 5. Сканирование по битовой карте
- Сканирование по битовой карте.
- Сравнение эффективности разных методов доступа.
Тема 6. Соединение вложенным циклом
- Общие соображения о соединениях.
- Соединение вложенным циклом.
- Модификации: левые, правые, полу- и анти- соединения.
- Вычислительная сложность.
- Вложенный цикл в параллельных планах.
Тема 7. Соединение хешированием
- Последовательное соединение хешированием: одно- и двухпроходное.
- Группировка с помощью хеширования.
- Вычислительная сложность.
- Параллельное соединение хешированием: одно- и двухпроходное.
Тема 8. Соединение слиянием
- Соединение слиянием.
- Сортировка.
Тема 9. Статистика
- Базовая статистика.
- Наиболее частые значения и гистограммы.
- Частные и общие планы выполнения.
- Расширенная и многовариантная статистика.
- Статистика по выражениям.
- Использование статистики для оценки кардинальности и селективности.
Тема 10. Профилирование
- Профилирование как инструмент для поиска узких мест.
- Выбор подзадачи для профилирования.
- Средства построения профиля.
Тема 11. Приемы оптимизации
- Пути оптимизации.
- Статистика.
- Настройки, влияющие на планирование и выполнение.
- Схема данных.
- Физическое расположение данных.
- Изменение запросов.
После окончания курса слушатель сможет:
- Детально понимать механизмы планирования и выполнения запросов,
- Настраивать параметры экземпляра, связанные с производительностью,
- Выполнять поиск проблемных запросов и их оптимизацию.
|