Вопрос проверяет понимание поведения PostgreSQL при использовании EXPLAIN ANALYZE с DDL-командами и знание ограничений этого инструмента.
При попытке выполнить EXPLAIN ANALYZE DROP TABLE PostgreSQL вернёт ошибку. DROP TABLE — это DDL-операция, для которой не строится план выполнения. EXPLAIN ANALYZE ожидает запрос, проходящий через оптимизатор. Поэтому такая команда считается некорректной. Таблица при этом удалена не будет.
Важно понимать, что EXPLAIN ANALYZE не является «обёрткой для любой SQL-команды». Он тесно связан с механизмом планирования запросов.
DDL command — это SQL-команда, которая изменяет структуру базы данных, а не работает с данными напрямую.
EXPLAIN ANALYZE:
передаёт запрос оптимизатору;
строит план выполнения;
затем реально выполняет запрос и замеряет метрики.
Это возможно только для операций, у которых есть execution plan.
Команда DROP TABLE:
не использует оптимизатор запросов;
выполняется напрямую на уровне каталога БД;
не имеет пошагового плана выполнения.
Поэтому PostgreSQL:
не может построить execution plan;
возвращает ошибку синтаксиса или типа операции.
Даже если используется ANALYZE:
команда не будет выполнена;
таблица не будет удалена.
Это защищает от случайного destructive-анализа.
На практике оценивают:
размер таблицы;
наличие зависимостей (FK, views);
блокировки;
время выполнения на staging.
EXPLAIN ANALYZE DROP TABLE не работает и завершится ошибкой, потому что DDL-команды не имеют плана выполнения. Таблица при этом не удаляется.