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)