Оптимизация производительности баз

Мониторинг не лечит тормоза: как быстро найти узкое место в базе

Мониторинг не лечит тормоза: как быстро найти узкое место в базе

Коллеги, давайте разберем план выполнения. Узкое место редко живет в одном месте: чаще это связка CPU, I/O, блокировки и плохой план. Поэтому первый шаг — не «добавить индекс», а посмотреть, где база реально тратит время: ожидание диска, конкуренция за latch, очередь на CPU или блокировки.

Рабочий порядок такой:
— сначала снимите топ ожиданий и утилизaцию ресурсов;
— потом найдите запросы с максимальным временем/логическими чтениями;
— отдельно проверьте блокировки и долгие транзакции;
— сравните план с фактом: если оценка резко расходится, виновата статистика или неудачный join.

Если запрос «тяжелый» только на бумаге, ищите селективность, перекос данных и сканы вместо seeks. Если система тормозит вся целиком, смотрите шире: переполненный пул соединений, очередь на запись, tempdb/temporary space, contention на горячих страницах. Схема простая, но дьявол кроется в статистике: один и тот же SQL может быть быстрым утром и мертвым под нагрузкой.

Золотое правило: сначала мониторинг, потом индексы. Иначе вы лечите симптом, а не bottleneck — и потом удивляетесь, почему «ускорение» добавило еще один дедлок.
Этот пост опубликован в Telegram-канале Оптимизация производительности баз. Подписаться можно по ссылке: @database_performance_tuning_arb.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.