Как вы решали задачи оптимизации, когда запрос работает долго и выполняет full scan? Как бы подошли к новой такой задаче?

Сначала выясните, действительно ли full scan лишний: при чтении большой доли таблицы он может быть оптимален. Затем изучите план, статистику, объём данных и ожидания.

Короткий ответ

Что ответить на собеседовании

Сначала выясните, действительно ли full scan лишний: при чтении большой доли таблицы он может быть оптимален. Затем изучите план, статистику, объём данных и ожидания.

Подробный разбор

Ответ с пояснениями

Сначала выясните, действительно ли full scan лишний: при чтении большой доли таблицы он может быть оптимален. Затем изучите план, статистику, объём данных и ожидания.

Проверьте селективность фильтра, соответствие типов, функции над индексируемым полем, актуальность статистики и число строк после join. Сравните оценки плана с фактическим выполнением, отдельно посмотрите I/O, CPU и блокировки.

Возможные решения — подходящий индекс, более ранний отбор, сокращение столбцов, исправление соединения или предварительная агрегация. Изменение оценивайте по одинаковому сценарию до/после, учитывая кеш и стоимость записи. Не следует принудительно включать индекс только из-за самого слова scan.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее