Сначала подтвержу узкое место измерениями, затем изучу план, объём данных, блокировки и частоту выполнения. Решение может быть в индексе, изменении запроса, устранении лишних вызовов или другой модели чтения.
Что вы будете делать, если тяжёлый SQL-запрос является узким местом?
Сначала подтвержу узкое место измерениями, затем изучу план, объём данных, блокировки и частоту выполнения. Решение может быть в индексе, изменении запроса, устранении лишних вызовов или другой модели чтения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала подтвержу узкое место измерениями, затем изучу план, объём данных, блокировки и частоту выполнения. Решение может быть в индексе, изменении запроса, устранении лишних вызовов или другой модели чтения.
Проверю селективность фильтров, join, сортировки и расхождение оценки строк с фактом. Кеш и материализованная проекция полезны только при допустимой задержке обновления и понятной инвалидации. Тяжёлую отчётность иногда стоит вынести из синхронного пользовательского пути. Изменение проверяют на сопоставимой нагрузке, включая влияние на записи и другие запросы; добавлять индексы без разбора плана не стоит.