Описание курса:
Целью обучения является приобретение теоретических знаний и практических навыков, связанных с выполнением задач по администрированию и оптимизации запросов в PostgreSQL.
Аудитория:
Специалисты, деятельность которых связана с администрированием и оптимизацией баз данных.
Необходимая подготовка:
-знакомство с ОС Unix;
-уверенное владение SQL (знакомство с PL/pgSQL не обязательно, но полезно);
-знания и навыки PostgreSQL в объеме курса DBA1 «Администрирование PostgreSQL. Базовый курс» или DEV1 «Разработка серверной части приложений PostgreSQL 16. Базовый курс» (рекомендуется обучение).
Результат обучения: После изучения курса слушатель будет уметь:
-детально понимать механизмы планирования и выполнения запросов;
-настраивать параметры экземпляра, связанные с производительностью;
-выполнять поиск проблемных запросов и их оптимизацию.
Программа курса:
Демонстрационная база данных Модуль 1. «Авиаперевозки»
• Цели и задачи.
• Предметная область и общая схема демобазы.
• Подробное описание объектов.
Выполнение запросов Модуль 2. Планирование и выполнение
• Общие подходы к оптимизации.
• Простой протокол и этапы обработки запросов.
• Расширенный протокол.
• Подробнее о планировании.
Доступ к данным Модуль 3. Методы доступа
• Последовательное сканирование (Seq Scan).
• Сканирование индекса (Index Scan).
• Сканирование по битовой карте (Bitmap Scan).
• Сканирование только индекса (Index-Only Scan).
• Сравнение эффективности методов доступа.
Модуль4. Параллельный доступ
• Параллельные планы.
• Размер пула процессов.
• Параллельное последовательное сканирование.
• Параллельный индексный доступ.
Сортировка и группировка Модуль 6. Сортировка
• Получение отсортированных данных.
• Сортировка в памяти.
• Внешняя сортировка.
• Инкрементальная сортировка.
• Сортировка в параллельных планах.
• Сортировка при построении индекса.
• Оконные функции с сортировкой.
Способы соединения Модуль 8. Соединение вложенным циклом
• Общие соображения о соединениях.
• Соединение вложенным циклом.
• Модификации: левые, полу- и анти- соединения.
• Вычислительная сложность.
• Вложенный цикл в параллельных планах.
Модуль 9. Соединение хешированием
• Последовательное соединение хэшированием: одно- и двухпроходное.
• Вычислительная сложность.
• Параллельное соединение хэшированием: одно- и двухпроходное.
Модуль 10. Соединение слиянием
• Алгоритм соединения слиянием.
• Вычислительная сложность.
• Соединение слиянием в параллельных планах.
Статистика Модуль 11. Базовая статистика
• Базовая статистика.
• Наиболее частые значения и гистограммы.
• Статистика элементов составных значений
• Использование статистики для оценки кардинальности и селективности.
• Частные и общие планы выполнения.
• Частичный индекс и индекс по выражению.
Модуль 12. Расширенная статистика
• Функциональная зависимость.
• Наиболее частые комбинации значений.
• Число уникальных комбинаций значений.
• Статистика по выражениям.
Оптимизация запросов Модуль 13. Профилирование
• Профилирование как инструмент для поиска узких мест.
• Выбор подзадачи для профилирования.
• Средства построения профиля.
Модуль 14. Материализация
• Материализация в запросах.
• Временные таблицы.
• Управление порядком соединений.
• Материализованные представления.
Модуль 15. Функции
• Категории изменчивости.
• Подстановка кода функции в текст запроса.
• Вызов табличных функций.
• Настройки COST и ROWS.
• Вспомогательные функции планировщика.
• Конфигурационные параметры.
Модуль 16. Подходы к настройке
• Что настраивать?
• Настройка сервера.
• Настройка приложения.
• Запросы.
Окончательная цена указывается в договоре на обучение.