Пропуски Senior EXPLAIN и оптимизация обновлено

EXPLAIN ANALYZE и расширенная статистика

Вопрос

Заполни пропуски: первая команда выполняет запрос по-настоящему и показывает фактические строки и время рядом с оценками, вторая создаёт расширенную статистику о зависимости колонок city и region.

EXPLAIN (__(1)__, BUFFERS)
SELECT COUNT(*) FROM customers WHERE city = 'Москва' AND region = 'ЦФО';

CREATE __(2)__ customers_city_region (dependencies) ON city, region FROM customers;
ANALYZE customers;

Попробуйте сами

Заполните пропуски по номерам.

1
2
Показать ответ и разбор

Коротко

EXPLAIN без опций только строит план и показывает оценки. EXPLAIN (ANALYZE, BUFFERS) реально выполняет запрос (осторожно с UPDATE и DELETE: оборачивай в транзакцию с ROLLBACK) и добавляет фактические строки, время и чтения буферов.

Что в пропусках

1

ANALYZE

2

STATISTICS

Разбор

EXPLAIN без опций только строит план и показывает оценки. EXPLAIN (ANALYZE, BUFFERS) реально выполняет запрос (осторожно с UPDATE и DELETE: оборачивай в транзакцию с ROLLBACK) и добавляет фактические строки, время и чтения буферов. Расхождение оценки и факта (1997 против 10 000 на этих данных) лечится CREATE STATISTICS ... (dependencies): после ANALYZE оценка стала 9980. Кроме dependencies бывают виды ndistinct (для GROUP BY по нескольким колонкам) и mcv.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме