SQLServerWaits презентация

Содержание


Поговорим об ожиданиях
 …и очередяхДокладчик
 Евгений Хабаров
 DBA в одной и московских финансовых компаний
 НезависимыйНаши спонсорыО чем этот доклад?
 Проблема, есть ли она?
 Ожидание - чтоПроблемаЗадача администратора 
 Сделать так, чтобы все работало быстро
 Для этогоКак искать проблему?
 DMV
 Perfmon
 Extended Events
 Activity monitor
 Анализ планов
Сессии
 Единовременно на одном планировщике может быть только один активный таск.Статусы сессии
 RUNNING – task выполняется в данный момент на каком-либоКруговорот статусов сессииОчередиОчередиОчередиЧто такое ожидание?
 Объекты, которые разработчики использовали для своих нужд
 Показывает,ИнструментыНе все ожидания одинаково полезны*
 BROKER_EVENTHANDLER
 BROKER_RECEIVE_WAITFOR
 BROKER_TASK_STOP
 BROKER_TO_FLUSH
 BROKER_TRANSMITTER
 CHECKPOINT_QUEUE
Топ-Х
 PAGEIOLATCH_*
 PAGELATCH_*
 CXPACKET
 WRITELOG
 LCK_M_*
 RESOURCE_SEMAPHORE_QUERY_COMPILE
 CMEMTHREAD 
 ASYNC_NETWORK_IO
 OLEDB
PAGEIOLATCH_XX
  где XX -
 SH – чтение
 EX – записьПричины PAGEIOLATCH_XX 
 Необходимость чтения большого объема данных
 Отсутствие необходимых индексов
DEMO: PAGEIOLATCH_XXCXPACKET
 sp_configure
 max degree of parallelism
 cost threshold for parallelism
 option(MAXDOPDEMO: CXPACKETPAGELATCH_XXPAGELATCH_XX
 Пользовательские базы
 Insert в таблицу с identity полем (hot page)
WRITELOGDEMO: PAGELATCH_XX + WRITELOGDEMO: LCK_M_*DEMO: sp_AskBrentСпасибо!Ресурсы
 http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/Performance_Tuning_Waits_Queues.doc
 Performance_Tuning_Waits_Queues.doc
 http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
 Wait statistics, or please tell me where



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Поговорим об ожиданиях …и очередях


Слайд 2
Описание слайда:
Докладчик Евгений Хабаров DBA в одной и московских финансовых компаний Независимый консультант Когда-то работал разработчиком Email: sql@dev.ms Blog: http://sql.dev.ms Twitter: @gR4mm

Слайд 3
Описание слайда:
Наши спонсоры

Слайд 4
Описание слайда:
О чем этот доклад? Проблема, есть ли она? Ожидание - что это?  Потоки и ресурсы Очереди Демо

Слайд 5
Описание слайда:
Проблема

Слайд 6
Описание слайда:
Задача администратора Сделать так, чтобы все работало быстро Для этого потребуется: Локализовать проблему Найти причину возникновения И устранить ее

Слайд 7
Описание слайда:
Как искать проблему? DMV Perfmon Extended Events Activity monitor Анализ планов ТОП-10 запросов SCOM / Zabbix etc. Анализ ожиданий

Слайд 8
Описание слайда:
Сессии Единовременно на одном планировщике может быть только один активный таск. (Task state = RUNNING)

Слайд 9
Описание слайда:
Статусы сессии RUNNING – task выполняется в данный момент на каком-либо ядре Только один task на одном ядре единовременно SUSPENDED – task ожидает некоторый ресурс Дисковая подсистема Сеть Блокировки Память RUNNABLE – ресурс получен, task ожидает процессора BACKGROUND – для фоновых процессов ( resource monitor, deadlock monitor) SLEEPING - ожидание новых команд, работа не производится

Слайд 10
Описание слайда:
Круговорот статусов сессии

Слайд 11
Описание слайда:
Очереди

Слайд 12
Описание слайда:
Очереди

Слайд 13
Описание слайда:
Очереди

Слайд 14
Описание слайда:
Что такое ожидание? Объекты, которые разработчики использовали для своих нужд Показывает, что именно ждет сессия. SQL сервер всегда отслеживает ожидания с момент старта сервера, как только ожидание происходит, он увеличивает соответствующий счетчик. Названия для типов ожиданий выбираются разработчиками на их усмотрение. А все потому, что раньше надо было смотреть только на IO, блокировки и сеть Соответственно, документация неполная

Слайд 15
Описание слайда:
Инструменты

Слайд 16
Описание слайда:
Не все ожидания одинаково полезны* BROKER_EVENTHANDLER BROKER_RECEIVE_WAITFOR BROKER_TASK_STOP BROKER_TO_FLUSH BROKER_TRANSMITTER CHECKPOINT_QUEUE CHKPT CLR_AUTO_EVENT CLR_MANUAL_EVENT CLR_SEMAPHORE DBMIRROR_DBM_EVENT DBMIRROR_EVENTS_QUEUE DBMIRROR_WORKER_QUEUE DBMIRRORING_CMD DIRTY_PAGE_POLL DISPATCHER_QUEUE_SEMAPHORE EXECSYNC FSAGENT FT_IFTS_SCHEDULER_IDLE_WAIT FT_IFTSHC_MUTEX HADR_CLUSAPI_CALL HADR_FILESTREAM_IOMGR_IOCOMPLETION HADR_LOGCAPTURE_WAIT HADR_NOTIFICATION_DEQUEUE HADR_TIMER_TASK HADR_WORK_QUEUE KSOURCE_WAKEUP LAZYWRITER_SLEEP LOGMGR_QUEUE ONDEMAND_TASK_QUEUE PWAIT_ALL_COMPONENTS_INITIALIZED QDS_PERSIST_TASK_MAIN_LOOP_SLEEP QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP REQUEST_FOR_DEADLOCK_SEARCH

Слайд 17
Описание слайда:
Топ-Х PAGEIOLATCH_* PAGELATCH_* CXPACKET WRITELOG LCK_M_* RESOURCE_SEMAPHORE_QUERY_COMPILE CMEMTHREAD ASYNC_NETWORK_IO OLEDB SOS_SCHEDULER_YIELD TRACEWRITE BACKUPIO/BACKUPBUFFER THREADPOOL

Слайд 18
Описание слайда:
PAGEIOLATCH_XX где XX - SH – чтение EX – запись

Слайд 19
Описание слайда:
Причины PAGEIOLATCH_XX Необходимость чтения большого объема данных Отсутствие необходимых индексов Scan вместо seek’a Неоптимальные планы Медленная дисковая подсистема Недостаточный объем оперативной памяти Плохо, если занимает большую часть времени запроса.

Слайд 20
Описание слайда:
DEMO: PAGEIOLATCH_XX

Слайд 21
Описание слайда:
CXPACKET sp_configure max degree of parallelism cost threshold for parallelism option(MAXDOP N) Плохо, когда один из потоков «отстает»

Слайд 22
Описание слайда:
DEMO: CXPACKET

Слайд 23
Описание слайда:
PAGELATCH_XX

Слайд 24
Описание слайда:
PAGELATCH_XX Пользовательские базы Insert в таблицу с identity полем (hot page) Небольшая таблица-очередь TempDB Страницы распределения данных Table-Valued Functions (PFS) Системный объекты

Слайд 25
Описание слайда:
WRITELOG

Слайд 26
Описание слайда:
DEMO: PAGELATCH_XX + WRITELOG

Слайд 27
Описание слайда:
DEMO: LCK_M_*

Слайд 28
Описание слайда:
DEMO: sp_AskBrent

Слайд 29
Описание слайда:
Спасибо!

Слайд 30
Описание слайда:
Ресурсы http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/Performance_Tuning_Waits_Queues.doc Performance_Tuning_Waits_Queues.doc http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ Wait statistics, or please tell me where it hurts http://blogs.msdn.com/b/psssql/archive/2009/11/03/the-sql-server-wait-type-repository.aspx The SQL Server Wait Type Repository… http://support.microsoft.com/kb/822101/en Description of the waittype and lastwaittype columns in the master.dbo.sysprocesses table in SQL Server 2000 and SQL Server 2005 http://mssqlwiki.com/tag/resource_semaphore/ What is RESOURCE_SEMAPHORE_QUERY_COMPILE? https://msdn.microsoft.com/en-us/library/ms179984.aspx sys.dm_os_wait_stats http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-02-16-70-13/Parallel-Query-Execution.pdf Parallel Query Execution in SQL Server by Craig Freedman http://www.brentozar.com/askbrent/ sp_AskBrent http://sqlblog.com/blogs/adam_machanic/archive/2012/03/22/released-who-is-active-v11-11.aspx sp_whoisactive


Скачать презентацию на тему SQLServerWaits можно ниже:

Похожие презентации