Что такое «Аудит выхода» в SQL Server Profiler?

93

Я выполняю импорт данных (используя C # / Linq) и, естественно, пытаюсь максимально оптимизировать свои запросы. С этой целью я запускаю трассировку в БД с помощью SQL Server Profiler, при этом моя трассировка фильтруется по моему имени входа в SQL (это имя может быть однозначно присвоено моему процессу импорта данных).

Как ни странно, большинство моих SQL-операторов действительно быстрые :) - очень немногие запросы даже прерывают отметку в 1 мс. Но между всеми моими запросами есть несколько строк, где EventClass - это «Audit Login» или «Audit Logout», а продолжительность «Audit Logout» может составлять до минуты!

Связано ли это с тем, что я использую транзакции при импорте? Если да, то есть ли способ найти самые популярные запросы, чтобы я мог их очистить?

Шауль Бер
источник
связанные: stackoverflow.com/questions/279401/…
Рубен Бартелинк
связанные: stackoverflow.com/questions/44920375/…
Стефан

Ответы:

83

Если я правильно помню, длительность выхода из системы аудита - это время, в течение которого соединение было открыто. Например, ничего общего со скоростью выполнения команды - просто количество времени, в течение которого логин был «авторизован».

Thies
источник
9
Интересно, спасибо! Но тогда почему число чтений такое большое (~ 400 000), когда число чтений для запросов между "входом в систему" и "выходом из системы" составляет всего 56?
Шауль Бер
Это количество мс от входа до выхода из системы. Не фактическое количество использованных запросов в рамках соединения. 400 000 мс - это около 7 минут. Посмотрите на ЦП, читает и записывает столбцы, чтобы попытаться найти запросы, которые сильно загружают ЦП и / или диск - оба убивают производительность.
Thies
Простите, вы имеете в виду, что Readsответы на измерение времени?
Johnny_D
1
Значение выхода из системы «Чтения» кажется мне действительно высоким, учитывая, что есть только одна операция с тремя перечисленными операциями чтения между ней и входом в систему.
Трийнко 01
1
Следует отметить, что Readsстолбец представляет не строки, возвращаемые запросами, а количество операций чтения с логического диска. Запрос, который даже ничего не возвращает, может сканировать всю таблицу из 1 миллиона записей в поисках ничего, что нужно вернуть, что приведет к очень большому количеству чтений. Таким образом, количество чтений на самом деле не коррелирует естественным образом с количеством запросов.
Pace
12

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

Как правило, эти события скрываются, если вы не подозреваете, что существует проблема с управлением пулом соединений и т. Д.

Необработанное время для пакетов должно быть достаточным для диагностики времени, которое занимает фактическая активность, включая влияние любых транзакций и т. Д.

Рубен Бартелинк
источник
Можно ли более подробно изучить эту "настройку / снос"? См. Следующий связанный вопрос: stackoverflow.com/questions/44920375/…
Стефан
3

Класс события «Аудит выхода из системы» указывает, что пользователь вышел из системы Microsoft SQL Server (вышел из нее). События в этом классе запускаются новыми соединениями или соединениями, которые повторно используются из пула соединений.

это общее время, в течение которого соединение было подключено, включая время простоя, поэтому оно не указывает на проблему с производительностью. Также очень маловероятно, что профилирование входов / выходов вызовет проблемы с производительностью. Лучше искать неэффективные запросы, возможно, долго выполняющиеся.

Для получения дополнительной информации я предлагаю https://msdn.microsoft.com/en-us/library/ms175827.aspx :)

Микеле Каджано
источник
1
Вы уверены, что события аудита выхода из системы запускаются при повторном использовании соединений из пула соединений? Я думал, что пулы соединений - это пример причины, по которой вы можете увидеть высокую длительность выхода из системы аудита, потому что соединение открыто, но не используется большую часть своей жизни,
Адам Гудвин
2

Также стоит отметить, что в этом ответе аудит входа / выхода может просто означать, что соединение повторно используется / возвращается в пул соединений.

Рори
источник