Комментарии 20
Кстати, у нас была ситуация, когда пошаговая отладка процедура роняла сервер. Ещё на 2008 сервере. На 2012 не пробовали ) зато у 2012 частенько врёт actual execution plan (некорректно показывает проценты у отдельных запросов в процедуре), и без профайлера с включенным sp:Statement completed реально не обойтись...
зато у 2012 частенько врёт actual execution plan (некорректно показывает проценты у отдельных запросов в процедуре), и без профайлера с включенным sp:Statement completed реально не обойтись...
вполне даже обойтись
set statistics time on
наше все, ну и туда же
set statistics io on
правда статистика io может не все показать — например траблшутил запрос, вроде и план плюс минус нормальный, IO по таблицам низкий
но при этом statistics time показывает высокую нагрузку на CPU и высокий duration и это при том что по плану видно что ни хэширования ни сортировки нету, откуда ж такая нагрузка на CPU… ну и пристальнее взглянув увидел скалярную функцию в которой много всякого интресного происходило, а statistics io этого не показывала :(
Поспорили терапевт с ветеринаром у кого работа сложнее. Спорили-спорили, не могут договориться. Ветеринар предлагает:
— Давай тестовый приём проведём?
— Давай!
— Ну вот представь, я пришёл к тебе на приём. Что бы будешь делать?
— На что жалуетесь?
— Э, нет! Так каждый дурак может!
У нас около 1 000 000 запросов в час, немного, но пару раз запускали с настройками "как есть" что бы найти запросы от предыдущих талантов. Сервер не падал, нагрузка росла, но не критично
У нас в компании используют несколько профилей, для выявления разных проблем: дедлоки, долгие запросы. Переходим сейчас на extended events, эту технологию рекомендует MS, поскольку сам профайлер deprecated. Плюсы EE более гибкая система получения информации о работе приложения, меньше проседает производительность по сравнению с профайлером, соответственно с меньшим риском можно запустить на проде
Но вот это
рекомендует MS, поскольку сам профайлер deprecated. Плюсы EE более гибкая система получения информации о работе приложения, меньше проседает производительность по сравнению с профайлером, соответственно с меньшим риском можно запустить на проде
достатточно, чтобы победить параною?
«Using this event can have a significant performance overhead so it should only be used when troubleshooting or monitoring specific problems for brief periods of time.»
поэтому хоть и eEvents и легче чем server side trace, тем не менее при неосторожном применении так же может стать причиной проседания производительности.
так что для параноии всегда будет место :)))
периодически решаю проблемы у некоторых наших клиентов (самые большие компании в мире) и еще ни одна не отказала мне в просьбе запустить профайлер.
Лучше использовать расширенные события:
https://docs.microsoft.com/ru-ru/sql/tools/sql-server-profiler/sql-server-profiler?view=sql-server-ver15
В общем плане профайлер аффектит на производительность и если у вас система высоко нагруженная, то профайлером можно пользоваться только тогда, когда уже все раком встало (как ФГДС для исследования пищевода, желудка и 12-перстной кишки).
Также есть и другие сторонние инструменты для профилирования, такие как DBeaver и Event Profiler for SQL Server
Опасен ли SQL profiler?