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;
Попробуйте сами
Заполните пропуски по номерам.
Показать ответ и разбор
Коротко
Что в пропусках
ANALYZE
STATISTICS
Разбор
EXPLAIN без опций только строит план и показывает оценки. EXPLAIN (ANALYZE, BUFFERS) реально выполняет запрос (осторожно с UPDATE и DELETE: оборачивай в транзакцию с ROLLBACK) и добавляет фактические строки, время и чтения буферов. Расхождение оценки и факта (1997 против 10 000 на этих данных) лечится CREATE STATISTICS ... (dependencies): после ANALYZE оценка стала 9980. Кроме dependencies бывают виды ndistinct (для GROUP BY по нескольким колонкам) и mcv.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.