SQL Server Profiler - PullRequest
       20

SQL Server Profiler

1 голос
/ 01 октября 2009

Мне сказали, что SQL Profiler вносит изменения в MSDB при запуске. Это правда, и если да, то какие изменения он вносит?

БОЛЬШЕ ИНФОРМАЦИИ

Причина, по которой я спрашиваю, состоит в том, что у нас есть администратор базы данных, который хочет, чтобы мы варьировали запрос на изменение, когда мы запускаем профилировщик на работающем сервере. Ее аргумент в том, что она вносит изменения в БД, которые должны контролироваться.

Ответы [ 4 ]

3 голосов
/ 01 октября 2009

Запуск трассировки добавляет строку в msdb.sys.traces, остановка трассировки удаляет строку. Однако msdb.sys.traces является представлением внутренней табличной функции и не поддерживается никаким физическим хранилищем. Чтобы доказать это, установите msdb на read_only, запустите трассировку, наблюдайте за новой строкой в ​​msdb.sys.traces, остановите трассировку, не забудьте повернуть msdb назад read_write. Так как трассировка может быть запущена в событии Profiler , когда msdb только для чтения , ясно, что обычно нет записи в msdb, которая может произойти.

Теперь, прежде чем ты пойдешь и улыбнешься своему дба, она на самом деле права. Трассировки профилировщика могут создать значительную нагрузку на работающую систему, поскольку отслеживаемые события должны блокироваться, пока они не смогут сгенерировать запись трассировки. Работающие, занятые системы могут блокироваться для ресурсов типа SQLTRACE_BUFFER_FLUSH, SQLTRACE_LOCK, TRACEWRITE и других. Живые трассировки (профилировщик) обычно хуже, трассировки файлов (sp_trace_create) лучше, но все же могут вызывать проблемы. Таким образом, запуск новых следов должен быть определенно чем-то, о чем БД должен быть проинформирован и очень тщательно продуман.

1 голос
/ 01 октября 2009

Единственные, которые я знаю, случаются, когда вы планируете трассировку для сбора периодической информации - добавляется задание.

0 голосов
/ 01 октября 2009

Ничто из того, что я когда-либо читал, слышал или видел, не говорит о том, что SQL Profiler или все, что он делает или использует, оказывает какое-либо влияние на базу данных MSDB. (SQL Profiler, по сути, представляет собой графический интерфейс пользователя, обернутый вокруг процедур трассировки.) Конечно, можно сконфигурировать определенную настройку / реализацию, чтобы делать, ну что угодно, и, возможно, это то, о чем кто-то думает.

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

0 голосов
/ 01 октября 2009

Насколько я знаю, дело обстоит не так (кроме простых изменений, отмеченных другими). ​​

Какие изменения вы имеете в виду?

...