Мне нужно увидеть, какие индексы я должен добавить в свою базу данных, поэтому мне нужно запустить SQL Server Profiler, чтобы я мог использовать его в качестве входных данных для помощника по настройке ядра СУБД.
У меня вопрос: влияет ли профилировщик на производительность БД? Кроме того, поможет ли запуск профилировщика на другом компьютере уменьшить нагрузку на БД?
Вы рекомендуете сделать это на рабочем сервере или мне следует пойти другим путем?
Чтобы найти «отсутствующие индексы», вы можете вместо этого использовать dmvs: Один Два Поиск
Профилировщик полезен, но накладывает определенную нагрузку. Вам просто нужно быть осторожным, чтобы правильно увидеть трассировку, и не запускать ее на сервере, на котором уже есть проблемы с производительностью ...
Будьте осторожны и с тем, что вы профилируете. Я видел несколько идиотских планов текстовых запросов дампа из профилировщика на работающем сервере, который сразу же умер, пытаясь записывать 100 МБ файлов трассировки каждую секунду.
Да, это влияет на производительность. Лучшим индикатором будет мониторинг вашей производительности на сервере перед запуском профилировщика и производительности после его запуска. Запуск его на другом сервере все равно повлияет на производительность. Например, когда я запускаю профилировщик SQL с другого сервера, я вижу, что моя сетевая активность растет.
По большей части это очень незначительная работа по сравнению с тем, что может выполнить сервер, так что с вами все должно быть в порядке. Если у вас есть какие-либо проблемы, просто проведите мониторинг производительности, и вы, вероятно, увидите, что это не так уж плохо.
Можно запустить профилировщик на локальном компьютере. Вообще говоря, профилирование заставит сервер выполнять дополнительный ввод-вывод, поскольку он должен генерировать информацию профиля и перемещать ее по сети. Используемый дополнительный процессор крошечный.
Не беспокойтесь о запуске профилировщика в производственной среде ...