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


NSDiagnosticEventClass (Transact-SQL)

Создает отчет о классе события для приложения служб Microsoft SQL Server Notification Services. Данный отчет помогает при диагностике коллекции событий и предоставляет сведения об обработке событий приложением.

Синтаксис

[ schema_name . ] NSDiagnosticEventClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @EventClassName = ] 'event_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

Аргументы

  • [ @ApplicationName = ] 'app_name'
    Имя приложения, как определено в файле конфигурации. Аргумент app_name имеет тип nvarchar(255) и не имеет значения по умолчанию.
  • [ @EventClassName = ] 'event_class_name'
    Имя класса события в приложении. Аргумент event_class_name имеет тип nvarchar(255) и не имеет значения по умолчанию.
  • [ @ReportingInterval = ] interval
    Число тактов генератора в каждом интервале составления отчета. Отчет содержит одну строку для каждого интервала. Аргумент interval имеет тип int и значение 1 по умолчанию, что означает один такт генератора на каждый интервал.

    Длительность такта определена в файле определения приложения (ADF).

  • [ @StartDateTime = ] 'start_date_time'
    Начальное дата и время отчета в формате UTC. Аргумент start_date_time имеет тип datetime. Значение аргумента по умолчанию: @EndDateTime - (5 * QuantumDuration * @ReportingInterval). При использовании значения по умолчанию результирующий набор содержит максимум пять строк, каждая из которых соответствует интервалу составления отчета.
  • [ @EndDateTime = ] 'end_date_time'
    Конечные дата и время отчета в формате UTC. Аргумент end_date_time имеет тип datetime. Значение по умолчанию — время, когда была запущена хранимая процедура (в формате UTC).

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Имя столбца Тип данных Описание

IntervalStartDateTime

datetime

Начальные дата и время в формате UTC для интервала составления отчета.

IntervalEndDateTime

datetime

Конечные дата и время в формате UTC для интервала составления отчета.

EventBatchesCollectedCount

int

Количество пакетов событий, собранных за интервал составления отчета. Учитываются только пакеты, завершившие процесс сбора до окончания интервала.

UnfinishedEventBatches

int

Количество запущенных в интервале составления отчета, но не завершенных пакетов событий.

AvgEventBatchEventCount

float

Среднее количество событий в пакете для пакетов событий, собранных в течение интервала составления отчета.

AvgEventsCollectedPerSecond

float

Среднее количество событий, собранных за секунду, для пакетов событий, собранных в течение интервала составления отчета.

AvgGeneratorPickupWaitPerBatch

float

Среднее время (в секундах) обработки генератором пакета событий (путем выполнения для него правила хроники событий или правила события подписки) для пакетов событий, собранных в течение интервала составления отчета.

AvgEventChronicleRuleFiringTimePerBatch

float

Среднее время (в секундах) работы правил хроники событий для пакетов событий, собранных в течение интервала составления отчета.

AvgEventSubscriptionRuleFiringTimePerBatch

float

Среднее время (в секундах) работы правил событий подписки для пакетов событий, собранных в течение интервала составления отчета.

EventNotificationBatchCount

int

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

EventNotificationsGeneratedCount

int

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

AvgEventNotificationBatchGenerationTime

float

Среднее время (в секундах) формирования генератором пакетов уведомлений для пакетов событий, собранных в течение интервала составления отчета.

AvgEventNotificationBatchWaitTillDistribution

float

Для пакетов событий, собранных в течение интервала формирования отчета, — среднее время (в секундах), в течение которого пакеты уведомлений ожидали обработки распространителем.

EventNotificationDeliveryAttempts

int

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

EventNotificationSuccessfulDeliveries

int

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

EventNotificationFailedAttempts

int

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

EventNotificationsDeliveryNotAttempted

int

Количество уведомлений, которые распространитель еще не пытался доставить для пакетов событий, собранных в течение интервала составления отчета.

EventNotificationsNotYetDelivered

int

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

EventNotificationToMessageRatio

float

Отношение количества сформированных уведомлений к числу отправленных сообщений для пакетов событий, собранных в течение интервала составления отчета.

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

AvgEventNotificationBatchSucceedDeliveryTime

float

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

Замечания

Службы Notification Services создают хранимую процедуру NSDiagnosticEventClass в базе данных экземпляров при создании экземпляра. Когда выполняется обновление этого экземпляра, службы Notification Services перекомпилируют хранимую процедуру.

Эта хранимая процедура находится в схеме экземпляра, указанной в элементе SchemaName файла конфигурации экземпляра (ICF). Если имя схемы не указано, схемой по умолчанию является dbo.

Пакеты событий попадают в интервал составления отчета, когда значение EndCollectionTime превышает значение IntervalStartDateTime, но меньше или равно значению IntervalEndDateTime.

Чтобы определить текущую дату и время в формате UTC, выполните инструкцию SELECT GETUTCDATE() в среде SQL Server Management Studio. Текущее время в формате UTC получается из текущего местного времени с учетом настройки часового пояса в операционной системе компьютера, на котором работает SQL Server.

Разрешения

Разрешения на выполнение по умолчанию предоставляются членам роли базы данных NSAnalysis, фиксированной роли базы данных db_owner и фиксированной серверной роли sysadmin.

Примеры

А. Указание интервала создания отчета, времени начала и времени окончания

Следующий пример формирует диагностический отчет класса события для приложения Flight и класса события FlightEvents. Этот экземпляр использует настройки базы данных по умолчанию, в соответствии с которыми все объекты экземпляра помещаются в схему dbo.

Каждый интервал составления отчета для этого отчета содержит 40 тактов генератора. Отчет начинается в 17:00 23 мая 2004 года и заканчивается в 18:00 того же дня (в формате UTC):

EXEC dbo.NSDiagnosticEventClass 
    @ApplicationName = N'Flight', 
    @EventClassName = N'FlightEvents', 
    @ReportingInterval = 40, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

Б. Использование значений по умолчанию, именованная схема

Следующий пример формирует диагностический отчет класса события для приложения Flight и класса события FlightEvents. В этом примере хранимая процедура (как и все остальные объекты экземпляра) находится в схеме FlightInstance, как указано в элементе SchemaName ICF-файла.

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

EXEC FlightInstance.NSDiagnosticEventClass
    @ApplicationName = N'Flight',
    @EventClassName = N'FlightEvents';

См. также

Справочник

Хранимые процедуры служб Notification Services (Transact-SQL)

Другие ресурсы

Отчеты о производительности служб Notification Services
SchemaName Element (ICF)

Справка и поддержка

Получение помощи по SQL Server 2005