Ответ вслух Senior Производительность обновлено

Расследование медленной операции

Вопрос

Пользователи жалуются, что проведение реализации иногда занимает 30 секунд. Ваш план расследования.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Слово «иногда» сразу намекает на ожидание блокировок или на зависимость от данных. Сначала выясняю, у кого и когда: если в часы закрытия смены или во время обмена, вероятно блокировки.

Что должно прозвучать в ответе

  • Воспроизвести и замерить: всегда или иногда, у кого, в какое время

  • Замер производительности: код или ожидание

  • Технологический журнал: длительные запросы, ожидания блокировок, серверные вызовы

  • Анализ плана медленных запросов и индексов

  • Исправление и замер после, на копии с рабочими данными

  • Мониторинг ключевой операции в ЦУП

Что могут спросить следом

  • Почему «иногда» важная подсказка?
  • Как проверить, что исправление помогло?

Разбор

Слово «иногда» сразу намекает на ожидание блокировок или на зависимость от данных. Сначала выясняю, у кого и когда: если в часы закрытия смены или во время обмена, вероятно блокировки. Включаю технологический журнал с TLOCK, TTIMEOUT, DBMSSQL с порогом и CALL с контекстами. Если проблема в запросе, смотрю план: часто это условие в ГДЕ вместо параметров или соединение с подзапросом. Если в ожидании, ищу длинную транзакцию в другом сеансе. Воспроизвожу на копии с рабочими данными, правлю, замеряю до и после. Ставлю ключевую операцию на мониторинг, чтобы видеть APDEX.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме