Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 pagelatch_up как побороть?  [new]
pagelatch_up
Guest
Ситуация такая. Есть мощная железяка и полка с дисвами (сервер не загружен, про полку с дисками могу сказать только что - на ней пасется не только sql server, что скрывается за логическими дисками, на которых разбросаны data/log файлы - пока загадка, выделено два логических диска один для логов второй для датафайлов, знаю что туфта но пока что по ожиданиям и дисковым очередям это не является проблемой). На этом всем крутится sql server один инстанс. На нем около 50 баз. Пользователей по всем базам в пик около 500:

tempdb содержит один datafile. но pfs/gam/sgam page contention не наблюдается (по крайней мере нет сессий висящих на pagelatch 2:1:xxx). файлы tempdb находятся там же где датафайлы и логи остальных баз соответственно :D

Тормозят открытия формочек (детально пока не смотрел - не было возможности).

Вот что по ожиданиям:


Не могу отловить сессии ожидающие на PAGELATCH_UP, чтобы понять что за ресурс. Как это лучше сделать и как это отловить.

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

(если что это 1с)

К сообщению приложен файл. Размер - 122Kb
12 мар 14, 19:32    [15712970]     Ответить | Цитировать Сообщить модератору
 Re: pagelatch_up как побороть?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
pagelatch_up,

Попробуйте посмотреть на page_latch_wait_in_ms в sys.dm_db_index_operational_stats(NULL, NULL, NULL, NULL). Хотя бы выясните проблемные таблицы/индексы.
13 мар 14, 03:42    [15714674]     Ответить | Цитировать Сообщить модератору
 Re: pagelatch_up как побороть?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Судя по справке, этот счетчик пополняется ожиданиями буфера при обновлении. Если количество обновлений значительно, то показания можно принимать в пределах нормы. Т.е. важна удельная задержка, а не суммарная.
13 мар 14, 11:16    [15715708]     Ответить | Цитировать Сообщить модератору
 Re: pagelatch_up как побороть?  [new]
pagelatch_up
Guest
Mind
pagelatch_up,

Попробуйте посмотреть на page_latch_wait_in_ms в sys.dm_db_index_operational_stats(NULL, NULL, NULL, NULL). Хотя бы выясните проблемные таблицы/индексы.


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

хочу попробовать запользовать extended events

+

CREATE EVENT SESSION tempdb_wait_info
ON SERVER
ADD EVENT sqlserver.latch_suspend_end
(
	WHERE
	(
		database_id = 2 AND
        duration > 0 AND
		(mode = 2 OR mode = 3) AND
        (
			page_id < 4 OR									-- Первые 3 страницы в datafile
			package0.divides_by_uint64(page_id, 8088) OR	-- PFS
            package0.divides_by_uint64(page_id, 511232) OR	-- GAM
            page_id = 511233 OR								--2-я SGAM 4GB-8GB
            page_id = 1022465 OR								--3-я SGAM 8GB-12GB
            page_id = 1533697 OR								--4-я SGAM 12GB-16GB
            page_id = 2044929 OR								--5-я SGAM 16GB-20GB
            page_id = 2556161 OR								--6-я SGAM 20GB-24GB
            page_id = 3067393 OR								--7-я SGAM 24GB-28GB
            page_id = 3578625									--8-я SGAM 28GB-32GB
		)
	)
) 



Потому что отловить я пытался клавишей F5 на запросе

+


select
    [owt].[session_id],
    [owt].[exec_context_id],
    [owt].[wait_duration_ms],
    [owt].[wait_type],
    [owt].[blocking_session_id],
    [owt].[resource_description],
    case [owt].[wait_type]
        when N'CXPACKET' then
            RIGHT ([owt].[resource_description],
            CHARINDEX (N'=', REVERSE ([owt].[resource_description])) - 1)
        else null
    end as [node id],
    [es].[program_name],
    [est].text,
    [er].[database_id],
    [eqp].[query_plan],
    [er].[cpu_time]
from
	sys.dm_os_waiting_tasks [owt]
		inner join
	sys.dm_exec_sessions [es] on [owt].[session_id] = [es].[session_id]
		inner join
	sys.dm_exec_requests [er] on [es].[session_id] = [er].[session_id]
		outer apply
	sys.dm_exec_sql_text ([er].[sql_handle]) [est]
		outer apply
	sys.dm_exec_query_plan ([er].[plan_handle]) [eqp]
where
    [es].[is_user_process] = 1
order by
    [owt].[session_id],
    [owt].[exec_context_id];
go

13 мар 14, 11:17    [15715709]     Ответить | Цитировать Сообщить модератору
 Re: pagelatch_up как побороть?  [new]
pagelatch_up
Guest
Владислав Колосов
Судя по справке, этот счетчик пополняется ожиданиями буфера при обновлении. Если количество обновлений значительно, то показания можно принимать в пределах нормы. Т.е. важна удельная задержка, а не суммарная.


удается воспроизвести проблему с tempdb allocation contention на ноуте. и там тоже вверх лезет pagelatch_up на страницы 2:1:1, и две следующие... добавляю datafile's в tempdb. проходит.

как соберу детальную инфу по ресурсам на которых ожидания pagelatch_up/sh - отпишусь (щас доступа к серваку нет).
13 мар 14, 11:20    [15715732]     Ответить | Цитировать Сообщить модератору
 Re: pagelatch_up как побороть?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Файлов в tempdb надо добавлять превентивно, а не ждать pagelatch'ей на ней.
13 мар 14, 11:27    [15715781]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить