NSDiagnosticNotificationClass (Transact-SQL)
Формирует отчет класса уведомлений для приложения служб MicrosoftSQL ServerNotification Services. В отчете содержатся данные о числе уведомлений и пакетов уведомлений, обработанных этим классом уведомлений, и о том, происходит ли успешная доставка этих уведомлений.
Синтаксис
[ schema_name . ] NSDiagnosticNotificationClass
[ @ApplicationName = ] 'app_name' ,
[ @NotificationClassName = ] 'notification_class_name'
[, [ @ReportingInterval = ] interval ]
[, [ @StartDateTime = ] 'start_date_time' ]
[, [ @EndDateTime = ] 'end_date_time' ]
Аргументы
- [ @ApplicationName=] 'app_name'
Имя приложения, как оно определено в файле конфигурации. Аргумент app_name имеет тип nvarchar(255) и не имеет значения по умолчанию.
- [ @NotificationClassName=] 'notification_class_name'
Имя класса уведомлений, как оно определено в файле определения приложения (ADF-файл). Аргумент notification_class_name имеет тип nvarchar(255) и не имеет значения по умолчанию.
[ @ReportingInterval=] interval
Число тактов генератора в каждом интервале составления отчета. На каждый интервал в отчете приходится одна строка. Аргумент interval имеет тип int и значение по умолчанию, равное 1, что означает один такт генератора на интервал.Продолжительность такта определена в файле определения приложения (application definition file, ADF).
- [ @StartDateTime=] 'start_date_time'
Дата и время начала отчета в формате UTC. Аргумент start_date_time имеет тип datetime. Значение по умолчанию, равное (5 * QuantumDuration * @ReportingInterval) перед значением @EndDateTime. При использовании значения по умолчанию результирующий набор содержит не более пяти строк, каждая из которых соответствует одному периоду составления отчета.
- [ @EndDateTime=] 'end_date_time'
Дата и время завершения отчета в формате UTC. Аргумент end_date_time имеет тип datetime. Принимаемое по умолчанию значение — результат выполнения функции GETUTCDAT, которая возвращает время вызова хранимой процедуры.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
Имя столбца | Тип данных | Описание |
---|---|---|
IntervalStartDateTime |
datetime |
Начальные дата и время в формате UTC для периода составления отчета. |
IntervalEndDateTime |
datetime |
Конечные дата и время в формате UTC для периода составления отчета. |
NotificationBatchesGenerated |
int |
Число пакетов уведомлений, созданных в период составления отчета (для класса уведомлений). |
NotificationsGenerated |
int |
Число уведомлений, созданных в период составления отчета (для класса уведомлений). |
NotificationsGeneratedPerSecond |
float |
Число уведомлений, создаваемых за одну секунду в период составления отчета (для класса уведомлений). |
AvgNotificationBatchWaitTillDistribution |
float |
Среднее время ожидания приема распространителем пакета уведомлений в период составления отчета (для класса уведомлений). |
NotificationDeliveryAttempts |
int |
Число попыток доставки уведомлений (для пакетов уведомлений данного класса уведомлений, созданных в период составления отчета). |
NotificationSuccessfulDeliveries |
int |
Число успешно доставленных уведомлений (для пакетов уведомлений данного класса уведомлений, созданных в период составления отчета). |
NotificationFailedAttempts |
int |
Число неудавшихся попыток доставки уведомлений (для пакетов уведомлений данного класса уведомлений, созданных в период составления отчета). |
NotificationsDeliveryNotAttempted |
int |
Число уведомлений, которые распространитель пока не пытался доставить (для пакетов уведомлений данного класса уведомлений, созданных в период составления отчета). |
NotificationsNotYetDelivered |
int |
Число уведомлений, не доставленных либо потому, что не предпринимались попытки их доставки, либо потому, что эти попытки заканчивались неудачей (для пакетов уведомлений данного класса уведомлений, созданных в период составления отчета). |
NotificationToMessageRatio |
float |
Отношение числа созданных уведомлений к числу отправленных сообщений (для пакетов уведомлений, созданных в период составления отчета). При сводной или многоадресной доставке одно сообщение может включать несколько уведомлений. Этот столбец показывает, сколько уведомлений входит в среднем в сводные или многоадресные сообщения. |
AvgNotificationBatchSucceedDeliveryTime |
float |
Среднее время, необходимое для отправки уведомлений в рамках процесса распространения (для пакетов уведомлений, созданных в период составления отчета). |
Замечания
Службы Notification Services создают хранимую процедуру NSDiagnosticNotificationClass в базе данных экземпляра при формировании этого экземпляра. Когда производится обновление этого экземпляра, службы Notification Services выполняют повторную компиляцию хранимой процедуры.
Эта хранимая процедура находится в схеме экземпляра, указанной в элементе SchemaName файла конфигурации экземпляра (ICF-файл). Если имя схемы не задано, схемой по умолчанию является dbo.
Пакеты уведомлений попадают в период составления отчета, когда значение параметра EndGenerationTime больше, чем значение параметра IntervalStartDateTime и меньше или равно значению параметра IntervalEndDateTime.
Чтобы определить текущую дату и время в формате UTC, выполните инструкцию SELECT GETUTCDATE() в среде SQL Server Management Studio. Текущее время в формате UTC получается из текущего местного времени и настройки часового пояса в операционной системе компьютера, на котором запущен SQL Server.
Разрешения
По умолчанию разрешения на выполнение предоставляются членам роли базы данных NSAnalysis, фиксированной роли базы данных db_owner и фиксированной серверной роли sysadmin.
Примеры
A. Указание интервала составления отчета, значения начального и конечного времени
В следующем примере создается диагностический отчет класса уведомлений для приложения Flight и класс уведомлений FlightNotifications. Этот экземпляр использует настройки базы данных по умолчанию, в соответствии с которыми все объекты экземпляра помещаются в схему dbo.
В этом отчете каждый интервал составления отчета содержит 60 тактов генератора. Отчет начинается в 17:00 23 мая 2002 года и заканчивается в 18:00 того же дня:
EXEC dbo.NSDiagnosticNotificationClass
@ApplicationName = N'Flight',
@NotificationClassName = N'FlightNotifications',
@ReportingInterval = 60,
@StartDateTime = '2004-05-23 17:00',
@EndDateTime = '2004-05-23 18:00';
Б. Использование значений по умолчанию, именованная схема
В следующем примере создается диагностический отчет класса уведомлений для приложения Flight и класс уведомлений FlightNotifications. В этом примере хранимая процедура (как и все остальные объекты экземпляра) находится в схеме FlightInstance, как указано в элементе SchemaName ICF-файла.
Для этого отчета используются значения по умолчанию, в соответствии с которыми должны быть показаны данные для пяти последних тактов генератора.
EXEC FlightInstance.NSDiagnosticNotificationClass
@ApplicationName = N'Flight',
@NotificationClassName = N'FlightNotifications';
См. также
Справочник
Хранимые процедуры служб Notification Services (Transact-SQL)
Другие ресурсы
Отчеты о производительности служб Notification Services
SchemaName Element (ICF)