NSDiagnosticSubscriptionClass (Transact-SQL)

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

Синтаксис

[ schema_name . ] NSDiagnosticSubscriptionClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @SubscriptionClassName = ] 'subscription_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

Аргументы

  • [ @ApplicationName = ] 'app_name'
    Имя приложения, определенного в файле конфигурации. Аргумент app_name имеет тип nvarchar(255) и не имеет значения по умолчанию.
  • [ @SubscriptionClassName = ] 'subscription_class_name'
    Имя класса подписки, определенного в файле определения приложения (ADF). Аргумент subscription_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 для периода составления отчета.

SubscriptionsScheduledCount

int

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

AvgScheduledSubscriptionWaitTime

float

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

AvgScheduledNotificationGenerationTime

float

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

AvgScheduledSubscriptionRuleFiringTime

float

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

ScheduledNotificationBatchCount

int

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

ScheduledNotificationCount

int

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

AvgScheduledNotificationBatchWaitTillDistribution

float

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

ScheduledNotificationDeliveryAttempts

int

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

ScheduledNotificationSuccessfulDeliveries

int

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

ScheduledNotificationFailedAttempts

int

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

ScheduledNotificationsDeliveryNotAttempted

int

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

ScheduledNotificationsNotYetDelivered

int

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

ScheduledNotificationToMessageRatio

float

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

AvgScheduledNotificationBatchSucceedDeliveryTime

float

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

Замечания

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

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

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

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

Разрешения

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

Примеры

A. Указать интервал составления отчета, значения начального и конечного времени

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

Каждый интервал составления отчета для этого отчета содержит 50 тактов генератора. Отчет начинается в 17.00 23 мая 2004 года и заканчивается в 18.00 того же дня.

EXEC dbo.NSDiagnosticSubscriptionClass 
    @ApplicationName = N'Flight', 
    @SubscriptionClassName = N'FlightSubscriptions', 
    @ReportingInterval = 50, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

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

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

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

EXEC FlightInstance.NSDiagnosticSubscriptionClass 
    @ApplicationName = N'Flight', 
    @SubscriptionClassName = N'FlightSubscriptions';

См. также

Справочник

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

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

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

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

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