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)