@one__for__one

Как правильно найти узкие места в существующей БД?

Здравствуйте. На собеседовании на должность разработчик программист задали вопрос.

Ваш первый день на рабочем месте. У вас MS SQL SERVER 2012
Есть БД в продакшене, в ней таблица на 5 млн записей.
На ней нет индексов. К ней осуществляются запросы: select, update, delete, insert.
Что Вы с данной БД будете делать, чтобы повысить производительность?

Мой ответ.
Запустить профайллер и отслеживать запросы, которые долго выполняются. Посмотрел план запроса и создал бы индексы для тяжелого запроса.

Как ответили бы Вы?
  • Вопрос задан
  • 524 просмотра
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
Это вопрос из серии подвохов)
Типа "что вначале делают: писают или какают?" (заходят в туалет, потом снимают штаны)

Для начала стоит изучить организационную "историю" базы, например кто ей рулит, кто за нее ответственен, кто делает и делает ли бэкапы, восстанавливаются ли бэкапы на тестовой площадке. А уж потом можно поиграться на тесте с тяжестью, планами и готовить предложения по модернизации базы, с оценками простоя и провалов производительности...

Кстати база-тормоза и профайлер - зачастую как с котом Шредингера - профилирование может положить базу по производительности... да, мс сделала многое для защиты от стрельбы себе по ногам, но...
Ответ написан
Комментировать
@Xilian
Программист 1С, сетевые технологии, SQL
Сначала по самим запросам можно было понять, по каким полям идет отбор и добавить индексы.

Отловить часто используемые запросы по жалобам операторов и начать смотреть по ним план.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы