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

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Собираю wait'ы следующим запросом:

+
IF EXISTS (SELECT * FROM sys.server_event_sessions WHERE name = 'MonitorWaits') DROP EVENT SESSION MonitorWaits ON SERVER;
 
CREATE EVENT SESSION MonitorWaits ON SERVER
  ADD EVENT sqlos.wait_info (WHERE sqlserver.session_id = 59 /* session id here*/)
  ADD TARGET package0.asynchronous_file_target (SET FILENAME = N'C:\MSSQL\DATA\EE_WaitStats.xel', METADATAFILE = N'C:\MSSQL\DATA\EE_WaitStats.xem')
  WITH (max_dispatch_latency = 1 seconds);
 



    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = START;
    GO
/* ТУТ ТЕСТИРУЕМЫЙ ЗАПРОС */
exec dbo.procedure @param1, @param2
/* ---------------------- */

    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = STOP;
    GO



CREATE TABLE #RawEventData (
    Rowid  INT IDENTITY PRIMARY KEY,
    event_data XML);
 
GO


INSERT INTO #RawEventData (event_data)
SELECT
    CAST (event_data AS XML) AS event_data
FROM sys.fn_xe_file_target_read_file (
    'C:\MSSQL\DATA\EE_WaitStats*.xel',
    'C:\MSSQL\DATA\EE_WaitStats*.xem', null, null);
GO

SELECT
    waits.[Wait Type],
    COUNT (*) AS [Wait Count],
    SUM (waits.[Duration]) AS [Total Wait Time (ms)],
    SUM (waits.[Duration]) - SUM (waits.[Signal Duration]) AS [Total Resource Wait Time (ms)],
    SUM (waits.[Signal Duration]) AS [Total Signal Wait Time (ms)]
FROM
    (SELECT
        event_data.value ('(/event/@timestamp)[1]', 'DATETIME') AS [Time],
        event_data.value ('(/event/data[@name=''wait_type'']/text)[1]', 'VARCHAR(100)') AS [Wait Type],
        event_data.value ('(/event/data[@name=''opcode'']/text)[1]', 'VARCHAR(100)') AS [Op],
        event_data.value ('(/event/data[@name=''duration'']/value)[1]', 'BIGINT') AS [Duration],
        event_data.value ('(/event/data[@name=''signal_duration'']/value)[1]', 'BIGINT') AS [Signal Duration]
     FROM #RawEventData
    ) AS waits
WHERE waits.[op] = 'End'
GROUP BY waits.[Wait Type]
ORDER BY [Total Wait Time (ms)] DESC;
GO


DROP TABLE #RawEventData;
GO 


Внутри хранимки - абсолютно простой селект с условием where.

Получаю следующий результат:
Wait TypeWait CountTotal Wait Time (ms)Total Resource Wait Time (ms)Total Signal Wait Time (ms)
WRITELOG15541
XE_BUFFERMGR_ALLPROCESSED_EVENT5330
SOS_SCHEDULER_YIELD216330


Вопрос - откуда WRITELOG на селекте?
Смотрел дисковую активность Process Monitor'ом - никакой записи в лог в это время нету

+ SELECT @@VERSION
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
26 авг 15, 16:21    [18071375]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
хм посмотрите с помощью fn_dblog что там? чего гадать.
26 авг 15, 16:36    [18071483]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha,

BEGIN TRAN test

exec dbo.procedure @param1, @param2

COMMIT TRAN test

SELECT * FROM fn_dblog(NULL, NULL) WHERE [Transaction Name] = 'test'


пусто
26 авг 15, 16:43    [18071535]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
как вариант от

    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = START;
    GO
/* ТУТ ТЕСТИРУЕМЫЙ ЗАПРОС */
exec dbo.procedure @param1, @param2
/* ---------------------- */

    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = STOP; 
    GO
26 авг 15, 16:43    [18071539]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
как вариант от

    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = START;
    GO
/* ТУТ ТЕСТИРУЕМЫЙ ЗАПРОС */
exec dbo.procedure @param1, @param2
/* ---------------------- */

    ALTER EVENT SESSION MonitorWaits ON SERVER STATE = STOP; 
    GO
Чего это оно вдруг в лог полезло???
26 авг 15, 16:45    [18071558]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
посмотрите хоть, у вас воспроизводится?
26 авг 15, 16:46    [18071572]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
абсолютно любой селект так себя ведёт
26 авг 15, 16:46    [18071577]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
вы ведь ожидания сессии собираете. а start/stop что-то куда-то да и пишет. а может и сами кишки XE что-то пописывают. вот надо fn_db_log выполнить после start/exec p/stop.
26 авг 15, 16:46    [18071583]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
вы ведь ожидания сессии собираете. а start/stop что-то куда-то да и пишет
оно пишет в файл, путь к которому указан в скрипте
26 авг 15, 16:48    [18071598]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
invm
Member

Откуда: Москва
Сообщений: 9405
Гадя Петрович
Вопрос - откуда WRITELOG на селекте?
А в этом селекте есть multi-statement TVF или скалярная функция, в которой имеются табличные переменные?
26 авг 15, 16:49    [18071612]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Гадя Петрович
churupaha
вы ведь ожидания сессии собираете. а start/stop что-то куда-то да и пишет
оно пишет в файл, путь к которому указан в скрипте


согласен, но вы ведь из метаданных можете получить например статус event session? - м. б. куда и пишет чего.
26 авг 15, 16:50    [18071615]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
invm
Гадя Петрович
Вопрос - откуда WRITELOG на селекте?
А в этом селекте есть multi-statement TVF или скалярная функция, в которой имеются табличные переменные?
нету ничего
был DDL-триггер уровня сервера, отключал - ничего не меняется
26 авг 15, 16:50    [18071618]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
Гадя Петрович
пропущено...
оно пишет в файл, путь к которому указан в скрипте


согласен, но вы ведь из метаданных можете получить например статус event session? - м. б. куда и пишет чего.
я себе слабо представляю как это вытащить с помощью fn_dblog
26 авг 15, 16:51    [18071626]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Гадя Петрович
churupaha
пропущено...


согласен, но вы ведь из метаданных можете получить например статус event session? - м. б. куда и пишет чего.
я себе слабо представляю как это вытащить с помощью fn_dblog


ща попробую.
26 авг 15, 16:52    [18071637]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
Гадя Петрович
пропущено...
оно пишет в файл, путь к которому указан в скрипте


согласен, но вы ведь из метаданных можете получить например статус event session? - м. б. куда и пишет чего.
и да, если бы XE что-то писал в лог, process monitor мне бы это показал
а он молчит!
26 авг 15, 16:53    [18071647]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Гадя Петрович
churupaha
пропущено...


согласен, но вы ведь из метаданных можете получить например статус event session? - м. б. куда и пишет чего.
и да, если бы XE что-то писал в лог, process monitor мне бы это показал
а он молчит!


а вы log от master смотрели?
26 авг 15, 17:00    [18071722]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
o-o
Guest
Гадя Петрович
churupaha,

BEGIN TRAN test

exec dbo.procedure @param1, @param2

COMMIT TRAN test

SELECT * FROM fn_dblog(NULL, NULL) WHERE [Transaction Name] = 'test'


пусто

так фильтровать неправильно.
для примера делаю вставkу в пустую таблицу,
понятно, что в лог пойдет куча всего, начиная с allocate page
(у меня это первая вставка)
если отфильтровать по имени транзакции, то получу лишь LOP_BEGIN_XACT,
а вот что там на самом деле (все, кроме первых 2ух строк, нужное,
т.к. только эта транзакция в данной базе,
да и в последней строке коммит от моей транзакции 0000:000061f5)

К сообщению приложен файл. Размер - 98Kb
26 авг 15, 17:01    [18071731]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
во

К сообщению приложен файл. Размер - 110Kb
26 авг 15, 17:04    [18071761]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
o-o
так фильтровать неправильно.
а, собственно, и непонятно что искать в логе
я же не знаю что генерит ожидание
26 авг 15, 17:06    [18071773]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Гадя Петрович
o-o
так фильтровать неправильно.
а, собственно, и непонятно что искать в логе
я же не знаю что генерит ожидание


генерят не сами ожидания в вашем случае, а сами команды

    
ALTER EVENT SESSION MonitorWaits ON SERVER STATE = START;
ALTER EVENT SESSION MonitorWaits ON SERVER STATE = STOP; 
26 авг 15, 17:08    [18071785]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
+ в log базы master
26 авг 15, 17:09    [18071793]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
Гадя Петрович
пропущено...
и да, если бы XE что-то писал в лог, process monitor мне бы это показал
а он молчит!


а вы log от master смотрели?
посмотрел ща
генерит что-то, падлюка :)
значит, накладные расходы XE
спасибо!
26 авг 15, 17:09    [18071797]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Гадя Петрович
генерит что-то, падлюка :)


что-то? 18071761
26 авг 15, 17:11    [18071817]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
churupaha
Гадя Петрович
генерит что-то, падлюка :)


что-то? 18071761
угу
про чекпоинт я не допёр сам :)
26 авг 15, 17:13    [18071836]     Ответить | Цитировать Сообщить модератору
 Re: writelog  [new]
o-o
Guest
churupaha,

а что это за призыв к активации винды на скрине?
у меня даже неактивированная не просила
26 авг 15, 17:16    [18071852]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить