Объясняем планы PostgreSQL - оптом и в розницу
explain.tensor.ru
About us


https://explain.tensor.ru/

Боровиков К.
Компания Тензор, ООО
29 oct 15:00
explain.sbis.ru
explain.tensor.ru
21 oct 09:52
Боровиков К.
Компания Тензор, ООО
10 aug 13:05
Правильно [c]читаем параллельные планы PostgreSQL
Боровиков К.
Компания Тензор, ООО
30 jul 10:00
Вооруженным глазом: наглядно о проблемах PostgreSQL-запроса
Боровиков К.
Компания Тензор, ООО
8 jul 09:50
Новая подсказка - "Бесключевой доступ"

Иногда случается в плане увидеть узел индексного сканирования таблицы (Index [Only] Scan [Backward]), у которого отсутствует условие собственно индексного отбора Index Cond.

Боровиков К.
Компания Тензор, ООО
5 jun 10:21
Понимаем планы PostgreSQL-запросов еще удобнее
explain.sbis.ru
explain.tensor.ru
12 mar 10:30
PGConf.Russia 2020: видео "План + запрос = ?.. Когда анализ запроса в радость"
  1. Странные вещи при анализе планов, и почему они происходят - сказка о потеряном времени и "лишние" buffers.
  2. Структурные подсказки в плане. Как помочь разработчику с оптимизацией, не написав ни строчки кода.
  3. Как соотнести узлы плана с текстом запроса и что из этого можно извлечь.
https://pgconf.ru/2020/262963

Боровиков К.
Компания Тензор, ООО
5 mar 14:55
Копипастим из логов вместе с запросом + JSON и YAML

Приятная новость для тех, кто копирует исходный запрос вместе с планом прямо из логов - теперь можно их не делить вручную на два поля ввода, а закидывать сразу в "план"

Боровиков К.
Компания Тензор, ООО
5 mar 14:29
Подсказки про temp buffers и work_mem

Если вы сортируете или группируете большие выборки, то иногда разрешенной для операции памяти может для этого не хватить. Иногда лишь чуть-чуть, но вы уже начали медленно и грустно "свапаться" на диск.
За этот объем памяти отвечает параметр work_mem:
Задаёт максимальный объём памяти, который будет использоваться во внутренних операциях при обработке запросов (например, для сортировки или хеш-таблиц), прежде чем будут задействованы временные файлы на диске. Если это значение задаётся без единиц измерения, оно считается заданным в килобайтах. Значение по умолчанию — четыре мегабайта (4MB). Заметьте, что в сложных запросах одновременно могут выполняться несколько операций сортировки или хеширования, так что этот объём памяти будет доступен для каждой операции. Кроме того, такие операции могут выполняться одновременно в разных сеансах. Таким образом, общий объём памяти может многократно превосходить значение work_mem; это следует учитывать, выбирая подходящее значение. Операции сортировки используются для ORDER BY, DISTINCT и соединений слиянием. Хеш-таблицы используются при соединениях и агрегировании по хешу, а также обработке подзапросов IN с применением хеша.
Возможно, стоит его увеличить - перед началом конкретного запроса или сразу в конфиге, и ваш сервер сможет вздохнуть гораздо свободнее!

Боровиков К.
Компания Тензор, ООО
2 mar 08:52
Contacts

Members
27

+14