What is t sql statement

Удобная процедура трассировки событий на стороне сервера

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

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

Кромя того, большинство экспертов по MS SQL Server, в том числе и сотрудники Microsoft рекомендуют отдать предпочтение трассировке на стороне сервера. Это подтверждают и тесты, особый интерес у меня (думаю и у вас) вызвала статья Performance Impact: Profiler Tracing vs. Server Side SQL Tracing .

Разница в замерах чуть ниже, а сейчас скажу о чём собственно это статья и что же это за удобная процедура трассировки: как извесно трассирывание на T-SQL очень трудоёмкая задача и не слишком понятная для начинающих администраторов/разработчиков, поэтому у меня и возникла идея написать что-то более понятное

и удобное для повседневного использования.

Ну, а прежде, чем перейти к тексту процедуры покажу, как и обещал, разницу в пропусконой способности SQL Trace и SQL Server Profiler:

Для начала создадим несколько таблиц:

Теперь наполним 2 таблицы-справочника данными

1) Сперва справочник событий ( dbo.Trace_Events ):

2) А теперь таблицу колонок:

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

А теперь текст самой процедуры, а потом я немного объясню как с ней работать, и какие у неё входные параметры:

Пример запуска процедуры очень прост:

Про входные пар-ры чуть-чуть подробнее:

@tracefile - Путь и имя файла трассировки на сервере или UNC-путь к файлу (у УЗ дожен быть доступ к указанному пути для сохранения результата в файл; расширение файлу можно не указывать, т.к. оно создастся автоматически)

@options - Указывает набор параметров для трассировки. Аргумент option_value имеет тип int и не имеет значения по умолчанию. Пользователи могут выбирать сочетания этих параметров путем указания их суммарного значения. Например, чтобы установить параметры TRACE_FILE_ROLLOVER и SHUTDOWN_ON_ERROR, достаточно задать значение 6 для аргумента option_value .

Source: www.t-sql.ru

Category: Forex

Similar articles: