Поделиться через


Захватить трассировку в Помощнике по экспериментации с базой данных

Заметка

Это средство было прекращено 15 декабря 2024 г.. Мы перестали поддерживать этот инструмент для любых проблем, возникающих, и не будут выдавать никаких исправлений ошибок или дальнейших обновлений.

С помощью помощника по эксперименту базы данных (DEA) можно создать файл трассировки с журналом захваченных событий сервера. Записанное событие сервера — это событие, которое происходит на определенном сервере в течение определенного периода времени. Запись трассировки должна выполняться один раз на каждом сервере.

Прежде чем начать запись трассировки, убедитесь, что выполняется резервное копирование всех целевых баз данных.

Кэширование запросов в SQL Server может повлиять на результаты оценки. Рекомендуется перезапустить службу SQL Server (MSSQLSERVER) в приложении служб, чтобы повысить согласованность результатов оценки.

Настройка отслеживания трассировки

  1. В DEA на панели навигации слева выберите значок камеры, а затем на странице Все Записи выберите Новый Захват.

    снимок экрана: создание записи в DEA.

  2. На странице Новая запись в разделе Сведения о записивведите или выберите следующие сведения:

    • Имя захвата: Введите имя для файла трассировки захвата.

    • формат: укажите формат (трассировка или XEvents) для записи.

    • длительность: Выберите длину времени (в минутах), в течение которого должна выполняться запись трассировки.

    • Расположение трассировки: выберите путь для сохранения файла трассировки.

      Заметка

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

  3. Убедитесь, что вы создали резервную копию, установив флажок Да, я вручную взял резервную копию....

  4. В разделе "Сведения о записи"введите или выберите следующую информацию:

    • тип сервера. Укажите тип SQL Server (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
    • имя сервера. Укажите имя сервера или IP-адрес SQL Server.
    • тип проверки подлинности: для типа проверки подлинности выберите Windows.
    • имя базы данных: введите имя базы данных, в которой необходимо запустить трассировку базы данных. Если база данных не указана, трассировка записывается во всех базах данных на сервере.
  5. Установите или отключите флажки шифрования подключения и сертификат сервера доверия в соответствии с вашим сценарием.

    снимок экрана страницы создания записи.

Начать запись трассировки

  1. После ввода или выбора необходимых сведений выберите Запустить, чтобы инициировать запись трассировки.

    Если введенная информация действительна, начинается процесс отслеживания трассировки. В противном случае текстовые поля с недопустимыми записями выделены красным цветом. Если возникают ошибки, исправьте все необходимые записи и снова нажмите кнопку Запустить.

    Пока выполняется запись трассировки, в разделе Сведения о записиотображаются состояние и ход выполнения процесса записи трассировки.

    снимок экрана: ход отслеживания монитора.

  2. После завершения записи трассировки новый файл трассировки (.trc) сохраняется в месте захвата , которое вы указали во время начальной конфигурации.

    снимок экрана завершённой записи трассировки.

    Файл трассировки содержит результаты трассировки действия базы данных SQL Server. TRC-файлы предназначены для предоставления дополнительных сведений об ошибках, обнаруженных и сообщаемых SQL Server.

Часто задаваемые вопросы о отслеживании трассировки

Ниже приведены некоторые часто задаваемые вопросы о отслеживании трассировки в DEA.

Какие события фиксируются при выполнении записи трассировки в рабочей базе данных?

В следующей таблице перечислены события и соответствующие данные столбцов, собираемые DEA для трассировки.

Имя события Текстовые данные (1) Двоичные данные (2) Идентификатор базы данных (3) Имя узла (8) Имя приложения (10) Имя входа (11) SPID (12) Время начала (14) Время окончания (15) Имя базы данных (35) Последовательность событий (51) IsSystem (60)
RPC: Выполнено (10) Нет Да Да Да Да Да Да Да Да Да Да Да
RPC:Запуск (11) Нет Да Да Да Да Да Да Да Нет Да Да Да
Параметр вывода RPC (100) Да Нет Да Да Да Да Да Да Нет Да Да Да
SQL:BatchCompleted (12) Да Нет Да Да Да Да Да Да Да Да Да Да
SQL:BatchStarting (13) Да Нет Да Да Да Да Да Да Нет Да Да Да
контроль входа (14) Да Да Да Да Да Да Да Да Нет Да Да Да
Выход из аудита (15) Да Нет Да Да Да Да Да Да Да Да Да Да
СуществующееПодключение (17) Да Да Да Да Да Да Да Да Нет Да Да Да
CursorOpen (53) Да Нет Да Да Да Да Да Да Нет Да Да Да
CursorPrepare (70) Да Нет Да Да Да Да Да Да Нет Да Да Да
Подготовка SQL (71) Нет Нет Да Да Да Да Да Да Нет Да Да Да
Выполнить подготовленный SQL (72) Нет Нет Да Да Да Да Да Да Нет Да Да Да
CursorExecute (74) Да Нет Да Да Да Да Да Да Нет Да Да Да
CursorUnprepare (77) Да Нет Да Да Да Да Да Да Нет Да Да Да
ЗакрытиеКурсора (78) Да Нет Да Да Да Да Да Да Нет Да Да Да

Влияет ли сбор трассировок на производительность моего рабочего сервера?

Да, во время сбора трассировки существует минимальное влияние на производительность. В наших тестах мы обнаружили около 3% давления памяти.

Какие разрешения необходимы для записи трассировок рабочей нагрузки?

Пользователь Windows, выполняющий операцию трассировки в приложении DEA, должен иметь права sysadmin на компьютере под управлением SQL Server.

Учетная запись службы, используемая на компьютере, на котором работает SQL Server, должна иметь доступ на запись к указанному пути к файлу трассировки.

Можно ли записывать трассировки для всего сервера или только в одной базе данных?

Вы можете использовать DEA для записи трассировок для всех баз данных на сервере или для одной базы данных.

У меня есть связанный сервер, настроенный в рабочей среде. Отображаются ли эти запросы в трассировках?

Если вы осуществляете трассировку для всего сервера, она фиксирует все запросы, включая запросы к связанному серверу. Чтобы запустить запись трассировки для всего сервера, оставьте поле имени базы данных в разделе New Capture пусто.

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

Насколько важно сделать резервную копию базы данных непосредственно перед началом захвата трассировки?

Прежде чем начать запись трассировки, убедитесь, что вы создайте резервную копию всех целевых баз данных. Записанная трассировка на Target 1 и Target 2 воспроизводится. Если состояние базы данных не совпадает, результаты эксперимента будут искажены.

Можно ли собирать XEvents вместо трассировок, а также воспроизводить XEvents?

Да. DEA поддерживает XEvents. Скачайте последнюю версию DEA и попробуйте.

Устранение неполадок с записью трассировки

Если при запуске записи трассировки возникает ошибка, убедитесь, что:

  • Имя компьютера, на котором работает SQL Server, действительно. Чтобы подтвердить, попробуйте подключиться к компьютеру под управлением SQL Server с помощью SQL Server Management Studio (SSMS).

  • Конфигурация брандмауэра не блокирует подключения к компьютеру под управлением SQL Server.

  • У пользователя есть права доступа, которые перечислены в часто задаваемых вопросах о воспроизведении (Replay FAQ).

  • Имя трассировки не соответствует стандартному соглашению о переключение (Capture_1). Вместо этого попробуйте использовать такие имена трассировки, как Capture_1A или Capture1.

Ниже приведены некоторые возможные ошибки, которые могут возникнуть, и решения для их разрешения:

Возможные ошибки Решение
Не удается запустить трассировку на целевом сервере SQL Server. Проверьте, есть ли у вас необходимые разрешения и имеется ли у учетной записи SQL Server доступ на запись к указанному файлу трассировки. Sql Error Code (53) Пользователь, на котором запущено средство DEA, должен иметь доступ к компьютеру под управлением SQL Server. Пользователю должна быть назначена роль sysadmin.
Не удается запустить трассировку на целевом сервере SQL Server, проверьте, есть ли необходимые разрешения и у учетной записи SQL Server есть доступ на запись в указанный путь к файлу трассировки Sql Error Code (19062) Указанный путь трассировки может не существовать, или папка не имеет разрешений на запись для учетной записи, в которой выполняются службы SQL Server (например, NETWORK SERVICE). Путь должен существовать, и он должен иметь необходимые разрешения для запуска трассировки.
В настоящее время на целевом сервере выполняется трассировка DEA. Активная трассировка уже выполняется на целевом сервере. Вы не можете запустить новую трассировку, когда уже запущена трассировка на уровне сервера.
Не удается открыть запрошенную базу данных для записи трассировки. Эта ошибка может быть вызвана неправильным именем базы данных. Указанная база данных не существует или недоступна текущему пользователю. Используйте правильное имя базы данных.

Если вы видите другие ошибки, помеченные как код ошибки SQL, ознакомьтесь с событиями и ошибками ядра СУБД для подробных описаний.