Анализ производительности: Трассировка + Логи системного монитора

16.03.21

База данных - HighLoad оптимизация

Небольшая заметка о том, как можно анализировать производительность при помощи собранной трассировки и показателей логов системного монитора.

Добрый день.

Хочу поделиться способом анализа производительности сервера СУБД, работающего на MS SQL, при помощи профайлера и системного монитора. Беглый поиск по Инфостарту по этой теме ничего не вывел, так что, надеюсь, кому-нибудь покажется интересным и пригодится на практике.

Итак, профайлер MS SQL может связать трассировку с логами системного монитора в одном окне, таким образом смотрим на график по какому-нибудь счетчику, видим резкие всплески, падения и тут же можем получить подозреваемых, которые могли это спровоцировать.

Чтобы воспользоваться такой возможностью, собираем, с помощью Permon, свои любимые счетчики. Параллельно включаем сбор трассировки в профайлере по событиям RPC:Completed (Stored Procedures) и SQL:BatchCompleted (TSQL). Если трассировку открыть из файла или таблицы БД, то станет доступен пункт меню Файл - Импорт данных производительности... (File - Import Performance Data...). Тут выбираем файл логов perfmon'а и получаем неплохую возможность для анализа влияния запросов на показатели счетчиков производительности. (см. картинку). С графиком можно работать как и в окне системного монитора (управлять галочками счетчиков, менять масштаб и т.д.)

Важно: при сборе трассировки надо отметить столбцы Start time и End Time, возможно, хватит какого-то одного из двух, но я не проверял.

Данный способ был подсмотрен в докладе Дениса Резника (Microsoft Data Platform MVP), за что ему летят лучи добра.

ПС: Моя первая статья на ИС, даже не статья, а заметка, соответственно опыта написания нет, прошу строго не судить. Если будет отклик от аудитории, то, возможно, продолжу публиковать интересные штуки далее.

MS SQL Profiler Performance Monitor Анализ производительности СУБД

См. также

Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    3584    spyke    28    

47

Быстродействие типовой 1С

HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    5539    vasilev2015    19    

38

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    8293    169    ZAOSTG    74    

101

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    6578    doom2good    48    

65

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    9404    ivanov660    6    

76

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    5351    a.doroshkevich    20    

72

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16594    skovpin_sa    14    

101
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MrWonder 642 16.03.21 21:52 Сейчас в теме
3. AlekseyBelyy 9 17.03.21 15:36 Сейчас в теме
2. capitan 2472 17.03.21 11:42 Сейчас в теме
https://bfy.tw/QYje

Беглый поиск по этой теме ничего не вывел

Это только если по порнхабу искать и то не факт )
А так - первой строкой гугла
https://docs.microsoft.com/ru-ru/sql/tools/sql-server-profiler/correlate-a-trace-with-windows-performance-log-data?view=sql-server-ver15
Сопоставление трассировки с журналом производительности Windows
Gilev.Vyacheslav; +1
4. AlekseyBelyy 9 17.03.21 15:36 Сейчас в теме
(2) виноват, не уточнил, поиск по инфостарту
5. Gilev.Vyacheslav 1911 18.03.21 08:30 Сейчас в теме
(4) это классика
зачем читать чужие книги когда можно свою написать, правда? )))
+
6. AlekseyBelyy 9 18.03.21 11:54 Сейчас в теме
(5) ну вас, Вячеслав, мне будет тяжело чем-то удивить, согласен. на это и не рассчитывал
+
9. m191 122 21.01.22 16:55 Сейчас в теме
(5)
зачем читать чужие книги когда можно свою написать, правда? ))

А по содержимому заметки есть что сказать конструктивное?
+
10. Gilev.Vyacheslav 1911 21.01.22 20:01 Сейчас в теме
(9) сопоставление данных из разных источников в отношении 1С надо делать шире - как минимум сопоставлять с событиями из технологического журнала
что толку от события на скуле, если в 1С все современные конфигурации используют управляемые блокировки, а не видя событий с ними ни какого достоверного вывода о блокировках сделать нельзя, тем более что есть сложные случае взаимоблокировок, когда один участник лочит скулем, а второй лочит блокировкой на сервере 1С управляемой, потом они меняются местами по месту попытки наложить блокировку
уже чуть ли не десятилетие у нас на сайте доступны для этого БЕСПЛАТНЫЕ инструменты для анализа http://www.gilev.ru/online/
более того, в платном варианте http://www.gilev.ru/querytj/ анализ долгих запросов позволяет посмотреть на наличие пиков загруженности оборудования в этот же момент http://www.gilev.ru/hardware/

из этой же статьи можно только поймать какие то фрагменты проблем, но довести до оптимизации кода и устранения проблемы будет не чтобы невозможно, но весьма затруднительно

приходите на http://www.gilev.ru/kurs/ , http://www.gilev.ru/training/ , там будет подробно, больше чем на неделю обучения

но даже если на площадке про 1С вы будете говорить что статья к 1С ни какого отношения не имеет, все равно все тоже самое сохраняется относительно логирования исполняющегося кода не 1С систем, если вы там SAP или на сайта запросы швыряете, все равно это надо логировать и только тогда будет конструктивно
+
7. sergiolavr 24.03.21 10:37 Сейчас в теме
А к трассировкам, которые были созданы при помощи Extended Events и загружены в отдельную базу можно прикрутить системный монитор? Я такого функционала не нашел, как в Profiler.
+
8. AlekseyBelyy 9 07.04.21 22:44 Сейчас в теме
(7) я тоже не нашел
+
Оставьте свое сообщение