Поделиться через


NSQuantumExecutionTime (Transact-SQL)

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

Синтаксис

[ schema_name . ] NSQuantumExecutionTime 
    [ @MinExecutionTime = ] min_time 
    [, [ @MaxExecutionTime = ] max_time ]
    [, [ @SinceQuantumInitialized = ] since_init ]

Аргументы

  • [ @MinExecutionTime = ] min_time
    Указывает минимальное время выполнения для такта, включаемого в отчет. Аргумент min_time имеет тип int, указывается в секундах и не имеет значения по умолчанию.
  • [@MaxExecutionTime = ] max_time
    Указывает максимальное время выполнения для такта, включаемого в отчет. Аргумент max_time имеет тип int, указывается в секундах и имеет значение по умолчанию, равное min_time плюс 5.
  • [ @SinceQuantumInitialized = ] since_init
    Указывает, включает ли отчет такт, предшествующий времени, когда последний раз был сброшен тактовый генератор при помощи хранимых процедур NSSetQuantumClock или NSSetQuantumClockDate. Аргумент since_init имеет тип tinyint и может быть равен 0 или 1. Значение по умолчанию равно 1, что включает только тактовые периоды после последнего сброса. 0 включает тактовые периоды, предшествующие последнему сбросу.

Значения кодов возврата

Нет

Результирующие наборы

Имя столбца Тип данных Описание

QuantumId

int

Уникальный идентификатор такта. Этот идентификатор можно передавать хранимой процедуре NSQuantumDetails для получения дополнительных сведений о такте.

QuantumStatusDescription

nvarchar(255)

Текст описания текущего состояния такта.

ExecutionTimeInMS

bigint

Число миллисекунд, необходимое генератору для обработки такта.

QuantumStartTime

datetime

Время начала работы такта в формате UTC.

QuantumEndTime

datetime

Время окончания работы такта в формате UTC. Время завершения равно сумме времени начала плюс время продолжительности такта.

ExecutionStartTime

datetime

Действительная дата и время начала обработки такта генератором в формате UTS.

ExecutionEndTime

datetime

Действительная дата и время окончания обработки такта генератором в формате UTS.

QuantumDurationLimit

nvarchar(20)

Указывает, было ли время выполнения такта меньше или больше времени такта, определенного в файле определения приложения (ADF-файл).

ChronicleQuantumLimit

nvarchar(20)

Указывает, было ли время выполнения такта больше значения аргумента ChronicleQuantumLimit * значение аргумента QuantumDuration (определяется в ADF-файле). Это указывает, привело ли превышение времени выполнения такта к превышению тактового ограничения хроники.

SubscriptionQuantumLimit

nvarchar(20)

Указывает, было ли время выполнения такта больше значения аргумента SubscriptionQuantumLimit  * значение аргумента QuantumDuration (определяется в ADF-файле). Это указывает, привело ли время, затраченное на выполнение такта, к превышению тактового ограничения подписки.

ChronicleRuleFiringCount

int

Число срабатываний правил событий хроники в такте.

EventSubscriptionRuleFiringCount

int

Число срабатываний правил событий подписки в такте.

ScheduledSubscriptionRuleFiringCount

int

Число срабатываний правил запланированной подписки в такте.

EventNotificationsGenerated

int

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

ScheduledNotificationsGenerated

int

Количество уведомлений, созданных во время выполнения такта правилами подписок по расписанию.

Замечания

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

Данная хранимая процедура находится в схеме приложения, которая в элементе SchemaName файла определения приложения (Application Definition File, ADF). Если имя схемы не задано, схемой по умолчанию является dbo.

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

Разрешения

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

Примеры

A. Использовать значения по умолчанию

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

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

EXEC dbo.NSQuantumExecutionTime 
    @MinExecutionTime = 0;

Б. Вернуть все такты, лежащие между минимальным и максимальным значениями

Следующий пример показывает, как создать отчет времени выполнения тактов для всех тактов генератора, которые выполнялись более 30 секунд, но менее 35 секунд (значение NULL равносильно значению аргумента min_time + 5).

В этом примере хранимая процедура (как и все остальные объекты приложения) находится в схеме Stock, как указано в элементе SchemaName ADF-файла.

EXEC Stock.NSQuantumExecutionTime 
    @MinExecutionTime = 30, 
    @MaxExecutionTime = NULL, 
    @SinceQuantumInitialized = 0;

См. также

Справочник

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

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

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

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

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