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

Откуда:
Сообщений: 1004
Кто сталкивался с этим типом ожидания PWAIT_DIRECTLOGCONSUMER_GETNEXT? Как с ним бороться и нужно ли? Нормальной информации так и не смог найти нигде.

Если что версия: Microsoft SQL Server 2016 SP1 - 13.0.4001.0 Enterprise
На сервере работает репликация

Сейчас это ожидание у меня в топ1.
Запрос:

SELECT TOP(20) wait_type
             , wait_time = CAST(wait_time_ms / 1000. AS DECIMAL(18,4))
             , wait_resource = CAST((wait_time_ms - signal_wait_time_ms) / 1000. AS DECIMAL(18,4))
             , wait_signal = CAST(signal_wait_time_ms / 1000. AS DECIMAL(18,4))
             , wait_time_percent = CAST(100. * wait_time_ms / NULLIF(SUM(wait_time_ms) OVER (), 0) AS DECIMAL(18,2))
             , waiting_tasks_count
             , max_wait_time = CAST(max_wait_time_ms / 1000. AS DECIMAL(18,4))
             , avg_wait = CAST(wait_time_ms / 1000. / waiting_tasks_count AS DECIMAL(18,4))
             , avg_wait_resource = CAST((wait_time_ms - signal_wait_time_ms) / 1000. / waiting_tasks_count AS DECIMAL(18,4))
             , avg_wait_signal = CAST(signal_wait_time_ms / 1000. / waiting_tasks_count AS DECIMAL(18,4))
FROM sys.dm_os_wait_stats
WHERE waiting_tasks_count > 0
    AND wait_time_ms > 0
    AND wait_type NOT IN (
        N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR',
        N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH',
        N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
        N'CHKPT', N'CLR_AUTO_EVENT',
        N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
        N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE',
        N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD',
        N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
        N'EXECSYNC', N'FSAGENT',
        N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
        N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
        N'HADR_LOGCAPTURE_WAIT', N'HADR_NOTIFICATION_DEQUEUE',
        N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
        N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP',
        N'LOGMGR_QUEUE', N'ONDEMAND_TASK_QUEUE',
        N'PWAIT_ALL_COMPONENTS_INITIALIZED',
        N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
        N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
        N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
        N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH',
        N'SLEEP_DBSTARTUP', N'SLEEP_DCOMSTARTUP',
        N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
        N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP',
        N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
        N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT',
        N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
        N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
        N'SQLTRACE_WAIT_ENTRIES', N'WAIT_FOR_RESULTS',
        N'WAITFOR', N'WAITFOR_TASKSHUTDOWN',
        N'WAIT_XTP_HOST_WAIT', N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
        N'WAIT_XTP_CKPT_CLOSE', N'XE_DISPATCHER_JOIN',
        N'XE_DISPATCHER_WAIT', N'XE_TIMER_EVENT'
    )
ORDER BY wait_time_ms DESC
31 май 17, 11:35    [20526619]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Если что в последней книге Короткевича это ожидания считается системным и на него не обращяют внимание. Но все же. Интересно мнение что это?
31 май 17, 11:39    [20526652]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
msLex
Member

Откуда:
Сообщений: 8065
AlanDenton
Если что в последней книге Короткевича это ожидания считается системным и на него не обращяют внимание. Но все же. Интересно мнение что это?

Т.к.
1. Это ожидание появилось в 2016
2. Оно связанно с чтением (а точнее с ожидание доступности) данных из лога

Предположу, что оно появилось вместе с параллельным реду лога, и вызвано "синхронизацией" читающих потоков.


ЗЫ
Это все ИМХО, конечно
31 май 17, 11:45    [20526687]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
AlanDenton, Пол "наше все" Рэндал уже организовал целый справочник по ожиданиям.

Там есть не все, но это - есть, с описанием:

https://www.sqlskills.com/help/waits/pwait_directlogconsumer_getnext/
31 май 17, 11:46    [20526692]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Это вся уже читал в первую очередь. Но с чем могут быть связаны "when a thread that is reading from the transaction log is waiting for a log block to be supplied to it". Ключевое тут "log block to be supplied to it"... если кто прояснит неясность буду благодарен.
31 май 17, 11:49    [20526712]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
Minamoto
Member

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

AlanDenton
Если что в последней книге Короткевича это ожидания считается системным и на него не обращяют внимание.

Рэндал, кстати, тоже включил в список исключаемых. Надо уже обновить перевод.
31 май 17, 12:12    [20526832]     Ответить | Цитировать Сообщить модератору
 Re: PWAIT_DIRECTLOGCONSUMER_GETNEXT  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Minamoto, спасибо. Мне так кажется что "поток, читающий конкретную транзакцию и ждущий, когда она завершится, чтобы дочитать все блоки данных" близкое к истине. waiting_tasks_count между PWAIT_DIRECTLOGCONSUMER_GETNEXT и WRITELOG у меня совпадают примерно.

Всем спасибо. Вопрос закрыт.
31 май 17, 12:28    [20526885]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить