Какой метод наименьшего воздействия для профилирования SQL Server для конкретного клиента? - PullRequest
2 голосов
/ 29 июля 2010

Моему дружественному к локальным администраторам баз данных не нравится идея разрешать профилирование на серверах SQL (даже непроизводственных) из-за влияния на производительность, которую они имеют.

По иронии судьбы, я пытаюсь уменьшить потребность в целой куче SQL-запросов и хотел бы иметь возможность довольно неинвазивно проверять, какие запросы отправляются по сети, без влияния на сервер. спектакль. Для этого существует ли инструмент, схожий по своему подходу с тем, насколько полезен Fiddler для отладки HTTP-соединений, но он позволяет выполнять профилирование на стороне клиента SQL Server (по крайней мере, для приложений .net)? Или это тот случай, когда запуск профиля для одного клиента не повлияет на производительность сервера?

Ответы [ 5 ]

4 голосов
/ 29 июля 2010

Лучшее, что вы можете сделать в этой ситуации, это использовать Трассировка по умолчанию в SQL Server, при условии, что она включена, но вы можете обнаружить, что она имеет ограниченную полезность.

Хорошо,Я забираю это обратно.Лучшее, что вы можете сделать - это вразумить своего администратора базы данных и заставить его или ее, по крайней мере, разрешить отслеживание на серверах разработки.Вы сейчас находитесь в нелепой ситуации.

Вы могли бы попытаться использовать такой инструмент, как Wireshark и наблюдать за сетевым трафиком, а затем извлекать интересующие запросы изапускать их в SSMS индивидуально с SET STATISTICS IO, установленным на ON, и получить некоторую информацию из этого.Надеюсь, он даст вам достаточный доступ, чтобы получить планы запросов.Но это ужасное решение.На самом деле, вы должны опровергнуть меня за то, что я даже предложил это.

Это все равно, что пытаться плавать с обеими руками, связанными за спиной.Сегодня вечером я выпью за тебя простуду.

3 голосов
/ 29 июля 2010

Вы отметили это ADO.NET. ADO.NET имеет встроенные средства отслеживания Вы исследовали их?

Вы используете SQL Server 2008? Если да, то как ваш администратор БД относится к расширенным событиям ? Их можно настроить так, чтобы они отбрасывали избыточные события, а не вызывали деградацию сервера, как это делает SQL Trace / SQL Profiler.

Облегченный способ получить представление о выполняемых запросах и частоте

select * from sys.dm_exec_cached_plans
outer apply sys.dm_exec_sql_text(plan_handle)
order by usecounts desc

но это не соответствовало бы конкретным критериям клиента, хотя и зависело от капризов плана кэширования.

2 голосов
/ 29 июля 2010

Моему локальному дружественному администратору баз данных не нравится идея разрешить профилирование на серверах SQL (даже на непроизводственных) из-за влияния на производительность, которую они имеют.

Ну, он илиу нее может быть очко, и он вполне мог сгореть этим в прошлом.

Однако у вас есть необходимость, поэтому передайте ее в dba, чтобы предложить метод для удовлетворения ваших потребностей, если вы не можете использоватьпрофайлер.Я твердо верю в философию «ты мне скажи нет, тогда я ожидаю, что ты предоставишь мне альтернативный способ выполнять свою работу».Когда становится больно говорить «нет», люди более склонны говорить «да».

Профилировщик может быть настроен на профилирование только очень ограниченных событий, что оказывает меньшее влияние на производительность.DBA может даже быть тем, который вы предлагаете, настроить условия профилировщика и запустить его, сохранив результаты в таблицу для вас, пока вы запускаете процессы, которые вы хотите профилировать.Таким образом, он контролирует то, что профилируется, и обеспечивает его остановку, когда он больше не нужен, и обеспечивает минимальное влияние, и вы получаете то, что хотите.В конце концов, работа dba - делать подобные вещи.Возможно, ей нужно напоминание.

1 голос
/ 29 июля 2010

Последняя версия ANTS Performance Profiler включает в себя профилирование SQL и I / O, так что вы можете получить эти детали на стороне клиента, без нагрузки на сервер.

0 голосов
/ 29 июля 2010

Сетевой монитор Microsoft - это инструмент, который я рассматривал для этой цели в прошлом - дошло до его установки и игры, но потом пришлось по-настоящему поработать, так что бросил его. Это, конечно, выглядело многообещающе - и имеет парсеры для протоколов, связанных с SQL, включая TDS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...