NSQuantumDetails (Transact-SQL)
Возвращает подробные сведения о такте. Эту хранимую процедуру следует использовать для решения проблем с длительным исполнением тактов или для анализа выполнения тактов.
Синтаксис
[ schema_name . ] NSQuantumDetails
[ @QuantumId = ] quantum_id
Аргументы
- [ @QuantumId = ] quantum_id
Идентификатор такта для отчета. Аргумент quantum_id имеет тип int и не имеет значения по умолчанию. Для получения идентификаторов тактов используются хранимые процедуры NSQuantumList, NSQuantumExecutionTime и NSQuantumFailures.
Значения кодов возврата
Нет
Результирующие наборы
NSQuantumDetails производит пять результирующих наборов. Первый результирующий набор содержит общие сведения о такте.
Имя столбца | Тип данных | Описание |
---|---|---|
QuantumStartTime |
datetime |
Время (в формате UTC) начала временного интервала, представляемого тактом. |
QuantumEndTime |
datetime |
Время по Гринвичу (UTC) завершения временного интервала, представляемого тактом; время завершения — это время начала такта плюс длительность такта. |
QuantumStatusDescription |
nvarchar(255) |
Текст, описывающий текущее состояние такта. |
ExecutionTimeInMS |
int |
Время в миллисекундах до завершения обработки такта. |
ExecutionStartTime |
datetime |
Фактическая дата и время по Гринвичу, когда генератор начал обработку такта. |
ExecutionEndTime |
datetime |
Фактическая дата и время по Гринвичу, когда генератор завершил обработку такта. |
EventNotificationsGenerated |
bigint |
Во время выполнения такта было сформировано несколько уведомлений от правил, запущенных событием. |
ScheduledNotificationsGenerated |
bigint |
Количество уведомлений, созданных во время выполнения такта правилами подписок по расписанию. |
ChronicleRuleFiringsSkipped |
nvarchar(255) |
Показывает, были ли обработки правил хроники событий пропущены во время данного такта |
SubscriptionRuleFiringsSkipped |
nvarchar(255) |
Показывает, были ли обработки правил подписки пропущены во время данного такта |
Второй результирующий набор содержит информацию об обработке правил в такте.
Имя столбца | Тип данных | Описание |
---|---|---|
RuleFiringId |
int |
Уникальный идентификатор правила, которое обрабатывается во время выполнения такта. |
RuleName |
nvarchar(255) |
Имя правила согласно файлу определения приложения (ADF). |
ExecutionTimeInMS |
int |
Время в миллисекундах до завершения обработки правила. |
PercentageQuantumTime |
numeric(7, 4) |
Процент общего времени выполнения тактов, используемый на обработку правила. |
ExecutionStartTime |
datetime |
Дата и время по Гринвичу (UTC) начала обработки правила. |
ExecutionEndTime |
datetime |
Дата и время по Гринвичу (UTC) окончания обработки правила. |
RuleTypeDescription |
nvarchar(250) |
Описывает тип правила, которое было выполнено; тип может быть хроникой события, подпиской по событию или плановой подпиской. |
EventClassName |
nvarchar(255) |
Имя класса события для событий, обработанных в ходе обработки правила. Если тип обработки правила является плановой подпиской, то этот столбец имеет значение NULL, так как эти правила не управляются событиями. |
EventCount |
bigint |
Количество событий, обработанных правилом. |
EventBatchId |
bigint |
Идентификатор пакета событий, содержащего события, обработанные в ходе обработки правила. Если тип обработки правила является плановой подпиской или если значение ProcessEventsInOrder в ADF-файле равно false, то столбец содержит значение NULL, так как обработка правила могла обработать множество пакетов событий. |
SubscriptionClassName |
nvarchar(255) |
Имя класса подписки для подписок, обработанных во время обработки правила. Если тип обработки правила является хроникой событий, то этот столбец имеет значение NULL. |
SubscriptionCount |
bigint |
Приблизительное количество подписок, обработанных правилом. Значение является приблизительным и основано на текущем состоянии подписок в базе данных приложения. Во время фактической обработки правила база данных может содержать большее или меньшее число подписок. |
StartScanTime |
datetime |
Дата и время по Гринвичу (UTC) начала плановых подписок, используемых правилом. Этот столбец содержит значение только в том случае, когда типом правила является плановая подписка, а приложение обрабатывает события по очереди. |
EndScanTime |
datetime |
Дата и время по Гринвичу (UTC) завершения плановых подписок, используемых правилом. Этот столбец содержит значение только в том случае, когда типом правила является плановая подписка, а приложение обрабатывает события по очереди. |
NotificationsGenerated |
int |
Число уведомлений, сформированных при обработке правила. |
Третий результирующий набор содержит информацию о пакетах событий, собранных в ходе такта.
Имя столбца | Тип данных | Описание |
---|---|---|
EventClassName |
nvarchar(255) |
Имя класса событий, передавшего пакет событий. |
EventBatchId |
bigint |
Идентификатор пакета событий. |
EventCount |
bigint |
Количество событий в пакете. |
StartCollectionTime |
datetime |
Дата и время по Гринвичу (UTC) начала сбора пакета событий. |
EndCollectionTime |
datetime |
Дата и время по Гринвичу (UTC) окончания сбора пакета событий. |
CollectionTimeInMS |
int |
Общее время сбора пакета событий в миллисекундах. |
ProviderName |
nvarchar(255) |
Имя поставщика событий, представившего пакет событий. Это значение равно NULL, если события были непосредственно вставлены в представление <EventClassName>. |
SystemName |
nvarchar(255) |
Имя системы, на которой выполняется поставщик событий. Это значение равно NULL для внепроцессных поставщиков событий или если события были непосредственно вставлены в представление <EventClassName>. |
Четвертый результирующий набор содержит информацию о подписках, обработанных во время такта.
Имя столбца | Тип данных | Описание |
---|---|---|
SubscriptionClassName |
nvarchar(255) |
Имя класса подписки, для которого подписки были обработаны во время такта. |
EventSubscriptionCount |
bigint |
Оценка количества активных управляемых событиями подписок для класса подписки в течение такта. |
ScheduledSubscriptionCount |
bigint |
Оценка количества активных плановых подписок для класса подписки в течение такта. |
Пятый отчет содержит сведения об уведомлениях, сформированных в течение такта.
Имя столбца
Тип данных
Описание
NotificationClassName
nvarchar(255)
Имя класса уведомлений, к которому относятся уведомления в пакете.
NotificationBatchId
bigint
Уникальный идентификатор пакета уведомлений, сформированный обработкой правила во время такта.
RuleFiringId
int
Уникальный идентификатор обработки правила, вызвавшей пакет уведомлений.
NotificationCount
int
Количество уведомлений в пакете уведомлений.
NotificationDeliveryAttempts
int
Количество попыток, предпринятых для доставки уведомлений из пакета уведомлений.
Примечание.
Если уведомление передано протоколу доставки, но протокол доставки не вернул его состояние, то попытка доставки уведомления не засчитывается.
NotificationSuccessfulDeliveries
int
Количество успешно доставленных уведомлений из пакета уведомлений.
NotificationFailedAttempts
int
Количество недоставленных уведомлений из пакета уведомлений.
NotificationsDeliveryNotAttempted
int
Количество уведомлений, которые распространитель еще не пытался доставить.
NotificationsNotYetDelivered
int
Количество уведомлений, которые еще не были успешно доставлены распространителем.
NotificationToMessageRatio
float
Отношение сформированных уведомлений к отправленным сообщениям.
При сводной или многоадресной доставке одно сообщение может включать несколько уведомлений. Этот столбец показывает, сколько уведомлений в среднем включено в сводные или многоадресные сообщения.
AvgNotificationBatchSucceedDeliveryTime
float
Среднее время в секундах, затраченное для успешной посылки уведомлений за весь период распространения.
Замечания
Службы Notification Services создают хранимую процедуру NSQuantumDetails в базе данных приложения при создании экземпляра. При обновлении приложения службы Notification Services перекомпилируют хранимую процедуру.
Данная хранимая процедура находится в схеме приложения, которая задана элементом SchemaName файла определения приложения (ADF-файл). Если имя схемы не задано, то схемой по умолчанию является dbo.
После получения высокоуровневых сведений о такте возможен дальнейший анализ такта с помощью следующих хранимых процедур:
- NSEventBatchDetails (Transact-SQL)
- NSNotificationBatchDetails (Transact-SQL)
- NSScheduledSubscriptionDetails (Transact-SQL)
Разрешения
По умолчанию права на исполнение даются членам ролей базы данных NSAnalysis и db_owner и членам фиксированной серверной роли sysadmin.
Примеры
В следующем примере создается пять результирующих наборов, описанных ранее в этом разделе, для первого такта генератора приложения:
Приложение использует настройки SchemaName по умолчанию, которые помещают все объекты приложения в схему dbo.
EXEC dbo.NSQuantumDetails
@QuantumId = 1;
См. также
Справочник
Хранимые процедуры служб Notification Services (Transact-SQL)
NSEventBatchDetails (Transact-SQL)
NSNotificationBatchDetails (Transact-SQL)
NSScheduledSubscriptionDetails (Transact-SQL)
Другие ресурсы
Отчеты о производительности служб Notification Services
SchemaName Element (ADF)