Содержание
- 2. Докладчик Евгений Хабаров DBA в одной и московских финансовых компаний Независимый консультант Когда-то работал разработчиком Email:
- 3. Наши спонсоры
- 4. О чем этот доклад? Проблема, есть ли она? Ожидание - что это? Потоки и ресурсы Очереди
- 5. Проблема RUN QUERY
- 6. Задача администратора Сделать так, чтобы все работало быстро Для этого потребуется: Локализовать проблему Найти причину возникновения
- 7. Как искать проблему? DMV Perfmon Extended Events Activity monitor Анализ планов ТОП-10 запросов SCOM / Zabbix
- 8. Сессии Connection SPID (session_id) Scheduler 0 Logical CPU 0 Scheduler 1 Logical CPU 1 Scheduler 2
- 9. Статусы сессии RUNNING – task выполняется в данный момент на каком-либо ядре Только один task на
- 10. Круговорот статусов сессии select * from sys.dm_exec_requests where status = 'running' select * from sys.dm_exec_requests where
- 11. Очереди
- 12. Очереди
- 13. Очереди
- 14. Что такое ожидание? Объекты, которые разработчики использовали для своих нужд Показывает, что именно ждет сессия. SQL
- 15. Инструменты sys.dm_os_waiting_tasks sys.dm_exec_requests sys.dm_os_wait_stats sys.dm_os_tasks sys.sysprocesses Текущее состояние Исторические данные Параллелизм PerfMon – SQL Server: Wait
- 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
- 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 – запись RUN QUERY select * from Sales.SalesOrderHeader
- 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 TempDB Create table #... Create table #... Create table #... Create table #... PFS GAM
- 24. PAGELATCH_XX Пользовательские базы Insert в таблицу с identity полем (hot page) Небольшая таблица-очередь TempDB Страницы распределения
- 25. WRITELOG RUN QUERY Insert into Sales.SalesOrderHeader… mdf ldf BUFFER Checkpoint (background) data Log records
- 26. DEMO: PAGELATCH_XX + WRITELOG
- 27. DEMO: LCK_M_*
- 28. DEMO: sp_AskBrent
- 29. Спасибо! Blog: http://sql.dev.ms/ Twitter: @gr4mm Email: sql@dev.ms
- 31. Скачать презентацию