PostgreSQL 16
Оптимизация запросов
16
Авторские права
© Postgres Professional, 2019–2024
Авторы: Егор Рогов, Павел Лузанов, Павел Толмачев, Илья Баштанов
Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
Использование материалов курса
Некоммерческое использование материалов курса (презентации,
демонстрации) разрешается без ограничений. Коммерческое
использование возможно только с письменного разрешения компании
Postgres Professional. Запрещается внесение изменений в материалы
курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу:
edu@postgrespro.ru
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за
любые повреждения и убытки, включая потерю дохода, нанесенные
прямым или непрямым, специальным или случайным использованием
материалов курса. Компания Postgres Professional не предоставляет
каких-либо гарантий на материалы курса. Материалы курса
предоставляются на основе принципа «как есть» и компания Postgres
Professional не обязана предоставлять сопровождение, поддержку,
обновления, расширения и изменения.
2
Администраторам
DBA1, 3 дня
Базовый курс
по администрированию
DBA2, 4 дня
Настройка и
мониторинг
QPT, 3 дня
Оптимизация
запросов
DBA3, 2 дня
Резервное
копирование
и репликация
Основы SQL
Е. П. Моргунов,
«PostgreSQL. Основы языка SQL»
PGPRO, 4 дня
Возможности
Postgres Pro Enterprise
DBS, 2 дня
Основы
безопасности
Для прохождения всех курсов необходимо знание основ языка SQL.
Курса по SQL в нашей линейке нет, но имеется множество книг и
образовательных ресурсов для освоения SQL. Мы рекомендуем книгу
Евгения Моргунова «PostgreSQL. Основы языка SQL»:
Для администраторов мы предлагаем следующие курсы.
Курс DBA1 – базовый, он дает сведения об архитектуре PostgreSQL, об
установке, настройке и управлении сервером. Приводятся обзоры
разграничения доступа, резервного копирования и репликации.
В курсе DBA2 обсуждается настройка конфигурационных параметров
исходя из понимания внутренней организации сервера; говорится о
мониторинге сервера с использованием обратной связи для
итеративной настройки параметров.
Курс DBA3 посвящен рассмотрению резервного копирования, а также
настройкам физической и логической репликации и сценариям ее
использования. Также дается общее представление о способах и
сложностях построения высокодоступных, масштабируемых кластеров.
Курс DBS рассказывает про настройку подключений клиентов к СУБД и
про управление доступом внутри самой СУБД.
В курсе QPT разбираются планирование и выполнение запросов,
настройка параметров экземпляра, связанных с производительностью,
и изучается поиск проблемных запросов и их оптимизация.
В курсе PGPRO рассматриваются дополнительные возможности,
которые предоставляет СУБД Postgres Pro Enterprise.
3
Разработчикам
DEV2, 4 дня
Расширенный курс
QPT, 3 дня
Оптимизация запросов
DEV1, 4 дня
Базовый курс
для разработчиков серверной части
Основы SQL
Е. П. Моргунов,
«PostgreSQL. Основы языка SQL»
PGPRO, 4 дня
Возможности
Postgres Pro Enterprise
DBS, 2 дня
Основы
безопасности
Для разработчиков серверной части приложений мы предлагаем
следующие курсы.
Базовым курсом для разработчиков является курс DEV1, в котором
даются общие сведения об архитектуре PostgreSQL и использовании
основных объектов базы данных; изучается программирование на
стороне сервера на языках SQL и PL/pgSQL с использованием
основных типов данных (включая составной тип и массивы), а также
рассматривается взаимодействие с клиентской частью.
В курсе DEV2 рассматриваются особенности внутреннего устройства
сервера, влияющие на разработку прикладного кода, и всесторонне
изучается расширяемость: возможность дополнить серверные
механизмы собственным кодом, что позволяет использовать
PostgreSQL для решения самых разнообразных задач.
Курсы DBS, QPT и PGPRO являются общими для разработчиков и
администраторов.
Разработчикам могут быть интересны и курсы по администрированию,
если есть необходимость детальнее изучить внутреннее устройство
PostgreSQL, а также в случае, когда на проекте нет выделенной роли
администратора.
4
О курсе QPT
Продолжительность: 3 дня
Предварительные знания
знакомство с ОС Unix
уверенное владение SQL (знакомство с PL/pgSQL не обязательно,
но полезно)
PostgreSQL в объеме курса DBA1 или DEV1
Какие навыки будут получены
детальное понимание механизмов планирования и выполнения запросов
настройка параметров экземпляра, связанных с производительностью
поиск проблемных запросов и их оптимизация
5
Используемые материалы
Подготовленная виртуальная машина
ОС Xubuntu 24.04
PostgreSQL 16 с документацией на русском языке
демонстрационная база данных «Авиаперевозки»
DBeaver
Учебные материалы
руководство слушателя
презентации, демонстрации, практические задания и их решение
(в форматах html и pdf)
схема демонстрационной базы данных
Если вы проходите курс самостоятельно, обязательно начните
со знакомства с Руководством слушателя. В числе прочего в нем
написано, где скачать и как использовать виртуальную машину курса
и прочие материалы. Все материалы курса доступны по адресу:
Выполнение практических заданий очень важно для получения навыков
работы с PostgreSQL. Обязательно старайтесь сначала самостоятельно
выполнить задания, а затем просмотрите предлагаемые нами решения,
даже если задание не вызвало вопросов. В решениях могут
содержаться дополнительные сведения, которые не упоминаются
в презентациях и демонстрациях.
Учебные материалы (презентации, демонстрации, практические
задания и их решения) доступны в двух форматах. Формат html удобен
для онлайн-работы, он позволяет копировать фрагменты текста и кода.
Документ в формате pdf разбит на страницы и удобен для печати.
Дополнительные справочные материалы помогут быстро найти нужную
информацию.
В виртуальной машине установлен DBeaver. В курсе мы используем
только psql, но при желании можно воспользоваться и графической
средой.
6
Организационные вопросы
День: ~8 академических часов + обед (1час)
Каждая тема, как правило, состоит из
презентации и демонстраций: ~30–60 мин
практических заданий: ~20–30 мин, включая перерыв
7
День 1
Демонстрационная база данных
01. Авиаперевозки
Выполнение запросов
02. Планирование и выполнение
Доступ к данным
03. Методы доступа
04. Параллельный доступ
8
День 2
Методы доступа (продолжение)
05. Типы индексов
Сортировка и группировка
06. Сортировка
07. Группировка
Способы соединения
08. Соединение вложенным циклом
09. Соединение хешированием
10. Соединение слиянием
9
День 3
Статистика
11. Базовая статистика
12. Расширенная статистика
Оптимизация запросов
13. Профилирование
14. Материализация
15. Функции
16. Подходы к настройке