SQLLab

Глава 19 из 28

19. Планировщик: статистика, ANALYZE, алгоритмы соединения

Запрос, который вчера работал за 50 мс, сегодня занимает минуту. Индексы на месте, данные те же, план другой. Почти всегда причина одна: планировщик ошибся в оценке числа строк и выбрал неподходящий путь. В этой главе разберём, откуда он берёт эти числа. Посмотрим, что лежит в pg_stats, как по нему считается оценка и как проверить её вручную. Выясним, что делает ANALYZE и когда статистика устаревает. Научим планировщик видеть зависимости между столбцами с помощью CREATE STATISTICS. Сравним три алгоритма соединения (Nested Loop, Hash Join, Merge Join) и покажем, как с помощью enable_* получить каждый из них для эксперимента. Как читать сам план, объяснено в главе про EXPLAIN, здесь она предполагается известной.

Продолжение доступно после покупки гайда или с подпиской Pro.

Откройте остальные главы

Ещё 20 глав: внутреннее устройство, оптимизация, администрирование. Покупка разовая, доступ навсегда.