Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.
В таблице диалогов 80 миллионов сообщений, а аналитический запрос для набора оценки выполняется 25 минут и иногда возвращает дубликаты пар вопрос-ответ. Что исправите первым и почему?
Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.
Проверьте ключи диалога, порядок сообщений, повторные события и связи one-to-many в JOIN. Не маскируйте ошибку случайным DISTINCT. Зафиксируйте правило pairing с детерминированным tie-breaker и проверьте примеры вручную. После этого анализируйте план, фильтруйте нужные даты и диалоги до соединений, добавляйте подходящие индексы либо инкрементальную витрину; полный тяжёлый запрос сначала не запускайте повторно без необходимости.