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

Откуда: Moscow
Сообщений: 973
Господа такой вопрос:

Пару раз сталкивался с поведением трассировки/сессии XE при событиях SP:StmtCompleted/sp_statement_completed SQL:StmtCompleted / sql_statement_completed что столбец RowCounts который отражает кол-во обработанных строк той или иной инструкцией бывает пустым.

При этом инструкции отражаемые по трассировке по которым было видно такое поведение dml т.е. реальные insert/delete из таблиц. число чтений было не нулевое, а вот rowcounts просто становился пустым, я думал что это глючит сама трасса, но в тот же момент времени на процесс навесил сессию XE и там тоже значения rowcounts отсутствовали.

Вот не могу воспроизвести такое поведение (а главное хотелось бы узнать какие факторы влияют на то что стобец перестает показывать данные).

Есть идеи из-за чего такое может происходить?
4 янв 19, 18:58    [21778512]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 973
вот пожалуйста пример:

что заметил, такое поведение только у одной сессии, если запустить трассу по нескольким то rowcounts нормально отражается по большинству, а вот по некотором встречается такое поведение.

пробовал и с set nocount поиграться, но что то не получается добиться такого эффекта принудительно.

К сообщению приложен файл. Размер - 124Kb
5 янв 19, 18:31    [21778838]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
invm
Member

Откуда: Москва
Сообщений: 8438
Такой эффект будет, если, например, у SP:Completed RowCounts включить, а у SP:StmtCompleted выключить.
5 янв 19, 18:57    [21778849]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
felix_ff
Member

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

Включен.
+

/****************************************************/
/* Created by: SQL Server 2017 Profiler          */
/* Date: 05/01/2019  19:10:24         */
/****************************************************/


-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5 

exec @rc = sp_trace_create @TraceID output, 0, N'C:\temp\trc01.trc', @maxfilesize, NULL 
if (@rc != 0) goto error

-- Client side File and Table cannot be scripted

-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 33, 1, @on
exec sp_trace_setevent @TraceID, 33, 11, @on
exec sp_trace_setevent @TraceID, 33, 8, @on
exec sp_trace_setevent @TraceID, 33, 10, @on
exec sp_trace_setevent @TraceID, 33, 12, @on
exec sp_trace_setevent @TraceID, 33, 51, @on
exec sp_trace_setevent @TraceID, 162, 1, @on
exec sp_trace_setevent @TraceID, 162, 11, @on
exec sp_trace_setevent @TraceID, 162, 8, @on
exec sp_trace_setevent @TraceID, 162, 10, @on
exec sp_trace_setevent @TraceID, 162, 12, @on
exec sp_trace_setevent @TraceID, 162, 51, @on
exec sp_trace_setevent @TraceID, 45, 1, @on
exec sp_trace_setevent @TraceID, 45, 9, @on
exec sp_trace_setevent @TraceID, 45, 5, @on
exec sp_trace_setevent @TraceID, 45, 8, @on
exec sp_trace_setevent @TraceID, 45, 10, @on
exec sp_trace_setevent @TraceID, 45, 11, @on
exec sp_trace_setevent @TraceID, 45, 12, @on
exec sp_trace_setevent @TraceID, 45, 13, @on
exec sp_trace_setevent @TraceID, 45, 16, @on
exec sp_trace_setevent @TraceID, 45, 17, @on
exec sp_trace_setevent @TraceID, 45, 26, @on
exec sp_trace_setevent @TraceID, 45, 29, @on
exec sp_trace_setevent @TraceID, 45, 34, @on
exec sp_trace_setevent @TraceID, 45, 35, @on
exec sp_trace_setevent @TraceID, 45, 48, @on
exec sp_trace_setevent @TraceID, 45, 51, @on
exec sp_trace_setevent @TraceID, 45, 64, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 9, @on
exec sp_trace_setevent @TraceID, 12, 11, @on
exec sp_trace_setevent @TraceID, 12, 8, @on
exec sp_trace_setevent @TraceID, 12, 10, @on
exec sp_trace_setevent @TraceID, 12, 12, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 26, @on
exec sp_trace_setevent @TraceID, 12, 35, @on
exec sp_trace_setevent @TraceID, 12, 48, @on
exec sp_trace_setevent @TraceID, 12, 51, @on
exec sp_trace_setevent @TraceID, 12, 64, @on
exec sp_trace_setevent @TraceID, 41, 1, @on
exec sp_trace_setevent @TraceID, 41, 9, @on
exec sp_trace_setevent @TraceID, 41, 5, @on
exec sp_trace_setevent @TraceID, 41, 8, @on
exec sp_trace_setevent @TraceID, 41, 10, @on
exec sp_trace_setevent @TraceID, 41, 11, @on
exec sp_trace_setevent @TraceID, 41, 12, @on
exec sp_trace_setevent @TraceID, 41, 13, @on
exec sp_trace_setevent @TraceID, 41, 16, @on
exec sp_trace_setevent @TraceID, 41, 17, @on
exec sp_trace_setevent @TraceID, 41, 26, @on
exec sp_trace_setevent @TraceID, 41, 29, @on
exec sp_trace_setevent @TraceID, 41, 35, @on
exec sp_trace_setevent @TraceID, 41, 48, @on
exec sp_trace_setevent @TraceID, 41, 51, @on
exec sp_trace_setevent @TraceID, 41, 64, @on


-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'%IntelliSense%'
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Приложение SQL Server Profiler - 0d1e7ca7-5047-48c3-9184-4064ecf365ad'
exec sp_trace_setfilter @TraceID, 34, 0, 7, N'SetAPIProcessID'
exec sp_trace_setfilter @TraceID, 34, 0, 7, N'GetAPIProcessID'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1

-- display trace id for future references
select TraceID=@TraceID
goto finish

error: 
select ErrorCode=@rc

finish: 
go



У трассы добавлены следующие события:
Exception
UserErrorMessage
SP:StmtCompleted
SQL:BatchCompleted
SQL:StmtCompleted

у последних трех колонка rowcounts включена
5 янв 19, 19:15    [21778857]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 973
при этом заметьте если колонку в событие не включать, но она присутствует у других событий она в профайлере будет для этого события пустая желтого цвета.

а у меня они белые, то есть для событий реально отлавливаются, и для других сессий там есть значения, я просто не очень удобно скриншот подобрал.
5 янв 19, 19:21    [21778863]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
invm
Member

Откуда: Москва
Сообщений: 8438
felix_ff,

Тогда, видимо, это баговина...
5 янв 19, 20:07    [21778897]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
felix_ff
Member

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

походу да, это просто край какой то :(

подумал что может сам профайлер глючит - но нет. серверная трасса в файл дает такой же результат время от времени для некоторых сессий он начинает null писать в это поле.

если что:
Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)
Mar 18 2018 09:11:49
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: )
5 янв 19, 20:23    [21778912]     Ответить | Цитировать Сообщить модератору
 Re: trace rowcounts  [new]
invm
Member

Откуда: Москва
Сообщений: 8438
felix_ff,

Попробуйте последний CU, может поможет.
5 янв 19, 20:39    [21778923]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить