title

text

Николай Самохвалов
Николай Самохвалов Nombox LLC Основатель
16:00 01 марта
180 мин

Бесшовная оптимизация запросов PostgreSQL, версия 2.0

Существует два способа анализировать SQL-запросы:

  1. На макроуровне: в этом случае мы анализируем рабочую нагрузку как единое целое (есть три основных подхода: использование метрик из pg_stat_statements или аналогичного модуля, анализ логов с помощью pgBadger или другого похожего решения и запрос выборки в представлении pg_stat_activity).

  2. На микроуровне: в этом случае мы погружаемся в детали исполнения одного конкретного запроса (тут главную роль играет команда EXPLAIN).

Между этими двумя подходами есть немало "белых пятен", которые обнаруживаются с ростом нагрузки. Главные проблемы:

  • Нужно переключаться между макро- и микроуровнем без больших накладных расходов.
  • Требуется надёжная проверка гипотез относительно возможных оптимизаций.
  • Есть необходимость минимизации рисков при развёртывании новой функциональности.

Чтобы справляться с этими задачами в растущем проекте, требуется продвинутый опыт в качестве администратора баз данных, и – иногда – интуиция. Также могут помочь новые инструменты, которые (к счастью для нас!) не так давно начали появляться.

В рамках данного мастер-класса мы разберёмся, как можно настроить процесс беспроблемной и бесшовной оптимизации SQL-запросов в вашей организации: а) какие инструменты следует выбрать в вашем конкретном случае? б) как эффективно заполнить вышеупомянутые пробелы в сфере анализа запросов?

Видео

Другие доклады

  • Andreas Scherbaum
    Andreas Scherbaum Pivotal Principal Software Engineer
    45 мин

    Управление PostgreSQL с помощью Ansible

    Ansible — открытый бесплатный инструмент для управления конфигурацией и развёртываниями, который можно применять для управления серверами и установленным на них программным обеспечением. В данном докладе мы вкратце обсудим сам Ansible, а затем объясним, как использовать его для установки и настройки PostgreSQL на сервере. Примеры будут демонстрироваться на протяжении всего доклада.

  • Dimitri Fontaine
    Dimitri Fontaine
    45 мин

    Архитектуры с Postgres в продакшне

    При использовании PostgreSQL в продакшне крайне важно реализовать стратегию высокой доступности. В случае с сервисом БД требования к высокой доступности будут касаться как самого сервиса, так и набора данных.

    В рамках данного доклада мы попробуем определить потребности вашей конкретной продакшн-среды в высокой доступности и постараемся выполнить необходимые требования с использованием открытых бесплатных инструментов, разработанных для PostgreSQL. В частности, мы рассмотрим многие возможности, которые можно реализовать для Postgres, чтобы превратить его из обычного набора инструментов в реально работающий. Что это означает в контексте высокой доступности? Как выполнить эти требования?

  • Алексей Фадеев
    Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
    22 мин

    Multicorn Foreign Data Wrapper против plpython

    Технология Multicorn позволяет разрабатывать FDW на языке Python, что гораздо проще и быстрее создания FDW на языке C. Однако есть и обратная сторона, Multicorn FDW хорошо работают с примитивными условиями WHERE, но на чуть более сложных случаях возникают трудности, про которые я расскажу. Случаи будут рассмотрены на примере моего Multicorn FDW для получения данных OpenStreetMap. Так же я покажу примеры использования одного и того же кода в Multicorn FDW и функции на plpython, в том числе сравнение производительности. В заключение поделюсь своими выводами, когда лучше использовать plpython, а когда Multicorn FDW.

  • Christopher Travers
    Christopher Travers DeliveryHero SE Principle Engineer
    45 мин

    Когда всё идёт не так: как надо и как не стоит реагировать на инциденты при поддержке СУБД

    Однажды в Adjust мы столкнулись с проблемой скорого достижения предельного значения xid в очень централизованной базе данных из-за длительной остановки autovacuum. Поскольку мы заметили предупреждения за 5 часов до надвигающейся катастрофы, мы смогли минимизировать влияние проблемы на клиентов. Приходите на доклад, чтобы узнать, как мы использовали это время для подготовки и какие уроки это может преподать всем, кто сталкивается с необычными проблемами в больших базах данных.