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)