Books and articles about SQL Rambler's Top100 Сменить язык на: Русский 09 July 2020 19:31:09


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Мониторинг системной информации с помощью трассировки по умолчанию в SQL Server 2005

Tim Chapman (оригинал: Monitor system information with SQL Server 2005’s default trace)
Перевод Моисеенко С.И.

Трассировка по умолчанию: введение

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

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

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

Файлы журнала трассировки перевернуты, позволяя Вам изучать историю данных трассировки. Эта трассировка достаточно легкая, т.е. она не использует слишком много ресурсов на вашем SQL Server; и она не перехватывает каждое событие, которое происходит на вашем сервере. Трассировка по умолчанию перехватывает следующую информацию: когда запускался и останавливался сервер, неудачные попытки подключения логина, когда создавались и удалялись объекты, когда файлы системного журнала увеличивались в размере и сжимались. Если Вам требуется перехватывать другую информацию, помимо той, что предоставляет вам трассировка по умолчанию, Вы можете настроить отдельную трассировку, чтобы собрать необходимые данные.

Как найти трассировку по умолчанию

Вы можете сохранять файлы трассы SQL Server в таблице базы данных, в виде файла XML или в текстовом файле на сервере. По умолчанию, данная трассировка сохраняет данные событий в папке LOG в местоположении установки SQL Server. Если Вы не знаете, куда он установлен, есть несколько системных функций, которые Вы можете использовать, чтобы выяснить это.

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

SELECT *
   FROM fn_trace_getinfo(default)

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

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

Просмотр данных в журнале

Имеется два варианта просмотра данных в лог-файле трассировки. Вы можете перейти в эту папку на сервере баз данных и щелкнуть на файле; это действие откроет файл трассировки в SQL Server Profiler, где вы и сможете просмотреть информацию. Там же Вы можете сохранить результаты в таблице или в документе XML.

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

SELECT *
   FROM fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\log_8.trc',default)
   ORDER BY starttime

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

Что дальше?

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

13/08/2007

На главную страницу

Print  Версия для печати


Usage of any materials of this site is possible
only under condition of mandatory allocation of the direct link to a site
http://www.sqlbooks.ru
on each page where used materials are placed.

 Main   Articles    Books 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.