Статистика и виды ожиданий. День № 12 (PAGELATCH)

Статистика и виды ожиданий. День № 12 (PAGELATCH)«PAGELATCH_DT, PAGELATCH_EX, PAGELATCH_KP, PAGELATCH_SH, PAGELATCH_UP»

Я часто вижу людей, которые не могут объяснить разницы в PAGEIOLATCH_X и PAGELATCH_X. А правильный ответ состоит в том, что PAGEIOLATCH относится к дисковым операциям, а PAGELATCH к памяти. Прежде чем пойдём дальше, позвольте мне объяснить что такое блокировки (latches).

Lathes — внутренние блокировки SQL Server, которые должны быть очень лёгкими и короткими. Lathes созданы не для блокировки данных на диске, а для распределения доступа к данных в памяти.

Lathes и Locks это два понятия, которые сильно могут поменять производительность сервера. Lathes происходят в страницах памяти, в то время как Locks накладывают блокировки на таблицы, строки и так далее.

ИЗ Book On-Line:

PAGELATCH_DT
Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удаления.

PAGELATCH_EX
Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в исключительном режиме.

PAGELATCH_KP
Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удержания.

PAGELATCH_SH
Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме общего доступа.

PAGELATCH_UP
Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме обновления.

Объяснение:

Когда происходит конкуренция доступа к страницам в памяти, появляется данный вид ожиданий. Скорее всего эта страница в памяти очень часто используется. SQL Server ждёт доступа к этим данным, чтобы положить latch. Часто такой вид блокировок может наблюдаться когда происходит конкуренция внутри TempDb. Если существуют индексы, которые очень часто используются, данный вид ожиданий так же может появиться.

Уменьшение ожиданий PAGELATCH_X:

Следующие виды конкуренции помогут понять ожидания PAGELATCH:

1. Average Latch Wait Time (ms): Время ожидания для запросов latch
2. Latch Waits/sec: Количество запросов latch, которые не могут быть наложены в данный момент
3. Total Latch Wait Time (ms): Общее количество latch в прошлую секунду

Если данные ожидания обнаружены в TempDb, то вам может помочь пост Pail Randal, который объяснит оптимальные настройки для данной базы (перейти). Флаг трассировки 1118 может помочь, но пользуйтесь им очень осторожно.

Заметка: Представленная тут информация является только моим опытом. Я настраиваю, чтобы вы читали Books On-Line. Все мои обсуждения ожиданий здесь носят общий характер и изменяются от системы к системе. Я рекомендую сначала тестировать всё на сервере разработки, прежде чем применять это на рабочем сервере.

Читайте все посты этой серии

Автор: Pinal Dave

***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***
Полезные Скрипты

Рубрика Проверь себя

Ссылка на наш канал YouTube

Запись опубликована в рубрике Cтатистика и виды ожиданий (Wait Stats and Wait Types) с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: