Как понять, какие sql запросы грузят процессор?

Доброго вечера.
Ситуация банальна - сайт при небольшой нагрузке юзает 90% CPU, подозрение на БД, ибо написан он криво. Как сдетектить место, где находятся самые затратные \ частые запросы к БД? Файл, таблица статистики или конкретный запрос. Есть ли инструменты, которые позволят это сделать?

Заранее спасибо.
  • Вопрос задан
  • 590 просмотров
Решения вопроса 1
megafax
@megafax
web-программист
Для начала просмотрите htop - действительно ли это БД.
В случае с mysql можете сделать лог медленных запросов через my.cnf https://dev.mysql.com/doc/refman/5.7/en/slow-query...
В случае с postgresql - https://www.heatware.net/databases/how-to-find-log...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Только подозрение?
Нужно убедится точнее.
Если на линуксе, то посмотрите в top что грузит проц, если винда - менеджер задач.
Естественно есть инструменты для профилирования БД, только нужно знать какой сервер БД вы используете - для каждого свой инструмент.
Ответ написан
Комментировать
@Xilian
Программист 1С, сетевые технологии, SQL
Для начала надо озвучить какую базу SQL ты используешь. Если SQL использует 90% процессора - то это явно проблема с дисками. План запроса столько не ест.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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