Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
MMF
Member

Откуда:
Сообщений: 96
Помогите, пожалуйста, длительные поиски в интернете ответа были безрезультатны.
Выполняется трассировка расширенными событиями в асинхронный файл с опцией max_file_size = 10, т.е. 10 Мб.
В логах обнаруживаю создание нескольких файлов сета трассы с размерами, скажем, 4 Мб (первый) и 1 Мб (второй). Первый файл не является перезаписанным поверх, потому что установлен лимит сета файлов трассы max_rollover_files =5 и он не достигнут.
Почему такое может происходить и, главное, как это смоделировать?
8 окт 18, 10:10    [21697744]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1367
MMF,

покажите
select total_buffer_size, dropped_event_count, dropped_buffer_count, buffer_policy_desc from sys.dm_xe_sessions where name = '<имя вашей сессии>'
8 окт 18, 12:56    [21697956]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
MMF
Member

Откуда:
Сообщений: 96
К сожалению, не могу. Такая ситуация возникает только у одного пользователя, доступа к компьютеру которого нет, а воспроизвести у себя не удается. При этом после импорта трассы наблюдается дублирование событий.
Я конечно могу выполнить и залогировать результаты Вашего запроса у проблемного пользователя, но это очень не быстрый процесс. Может, скажете, как интерпретировать результаты самостоятельно?
8 окт 18, 13:08    [21697979]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
MMF
К сожалению, не могу. Такая ситуация возникает только у одного пользователя, доступа к компьютеру которого нет, а воспроизвести у себя не удается. При этом после импорта трассы наблюдается дублирование событий.
В смысле, сиквел стоит на компе этого пользователя?
Так пусть разбирается его админ, он должен иметь доступ к его компу.
8 окт 18, 13:32    [21698026]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
MMF
Member

Откуда:
Сообщений: 96
total_buffer_size dropped_event_count dropped_buffer_count buffer_policy_desc
4324761 0 0 drop_event
Надо сказать, что старт нового файла в сете трассы происходит редко. И данные запроса соответствуют нормальному состоянию сбора
8 окт 18, 14:51    [21698179]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1367
MMF,

хм, вообще странно. я сначала подумал что у вас буфер слишком большой, потом прикинул что 2*4(мб) должно было помещаться в лимит 10 МБ.

версия сервера у вас какая?

и заскриптуйте код создания сессии, как оно у вас точно выглядит можно без указания предикатов, но с подробностями опций для цели.
8 окт 18, 18:44    [21698528]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
MMF
Member

Откуда:
Сообщений: 96
felix_ff,
Microsoft SQL Server 2014 (SP2-CU12) (KB4130489) - 12.0.5589.7 (X64) Jun 9 2018 11:17:15
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 (Build 9600: )
CREATE EVENT SESSION TEST_READS_SP ON SERVER
    ADD EVENT sqlserver.rpc_completed( ACTION( sqlserver.sql_text, sqlserver.client_app_name, sqlserver.client_hostname, sqlserver.client_pid, sqlserver.database_id, sqlserver.username, sqlserver.session_id, sqlserver.nt_username, sqlserver.server_principal_name, sqlserver.transaction_id,sqlserver.query_hash, sqlserver.query_plan_hash )
	where
(
    logical_reads > 50000
)

) , ADD EVENT sqlserver.sql_batch_completed( ACTION( sqlserver.sql_text, sqlserver.client_app_name, sqlserver.client_hostname, sqlserver.client_pid, sqlserver.database_id, sqlserver.username, sqlserver.session_id, sqlserver.nt_username, sqlserver.server_principal_name, sqlserver.transaction_id,sqlserver.query_hash, sqlserver.query_plan_hash )
where
(
    logical_reads > 50000
)
) , ADD EVENT sqlserver.sql_statement_completed( ACTION( sqlserver.sql_text, sqlserver.client_app_name, sqlserver.client_hostname, sqlserver.client_pid, sqlserver.database_id, sqlserver.username, sqlserver.session_id, sqlserver.nt_username, sqlserver.server_principal_name, sqlserver.transaction_id,sqlserver.query_hash, sqlserver.query_plan_hash )
where
(
    logical_reads > 50000
)
) add target package0.asynchronous_file_target (
set filename             = 'D:\Trace\TEST_READS_SP.xel'
    , metadatafile       = 'D:\Trace\TEST_READS_SP.xem'
    , max_file_size      = 10
    , max_rollover_files = 5) with (max_dispatch_latency = 15 seconds, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS)
8 окт 18, 19:18    [21698566]     Ответить | Цитировать Сообщить модератору
 Re: Почему создаются трассы расширенных событий до достижения максимального размера файла  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1367
MMF,

ну судя по всему, такое могло произойти если:
создали сессию, дали ей немного поработать, остановили сеанс, запустили сеанс заново

в таком случае при остановке сеанса данные с буфера будут отправлены цели, а при новом запуске сеанса будет создан следующий ротационный файл.
8 окт 18, 20:20    [21698620]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить