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 です。1 を指定した場合、レポートには最後のリセット時点より後のクォンタムのみが含まれます。0 を指定した場合、レポートには最後のリセット時点より前のクォンタムが含まれます。
結果セット
列名 | データ型 | 説明 |
---|---|---|
QuantumId |
int |
クォンタムの一意 ID。この ID を NSQuantumDetails ストアド プロシージャに渡すと、クォンタムについての詳細情報を取得できます。 |
QuantumStatusDescription |
nvarchar(255) |
クォンタムの現在の状態を説明するテキスト。 |
ExecutionTimeInMS |
bigint |
ジェネレータによるクォンタムの処理にかかった時間 (ミリ秒単位)。 |
QuantumStartTime |
datetime |
クォンタムが表す期間の開始時間 (UTC)。 |
QuantumEndTime |
datetime |
クォンタムが表す期間の終了時間 (UTC)。終了時間は、開始時間にクォンタムの期間を加算した時刻になります。 |
ExecutionStartTime |
datetime |
ジェネレータがクォンタムの処理を開始した実際の時間 (UTC)。 |
ExecutionEndTime |
datetime |
ジェネレータがクォンタムの処理を終了した実際の時間 (UTC)。 |
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 ではストアド プロシージャが再コンパイルされます。
このストアド プロシージャは、アプリケーション定義ファイル (ADF) の要素 SchemaName で指定される、アプリケーション スキーマ内に格納されます。スキーマ名が指定されない場合、既定のスキーマ dbo が使用されます。
問題のクォンタムを特定できたら、必要に応じてさらに詳しい解析を行ってください。特定のクォンタムの詳細情報を取得するには、NSQuantumDetails ストアド プロシージャを使用します。
権限
実行権限は、既定では NSAnalysis データベース ロール、db_owner 固定データベース ロール、および sysadmin 固定サーバー ロールのメンバに与えられています。
戻り値
なし
例
A. 既定値を使用する
次の例では、前回の初期化以後、実行時間が 0 秒から 5 秒の範囲だったすべてのクォンタムを対象に、クォンタムの実行時間レポートを生成します。
アプリケーションでは、既定の SchemaName 設定が使用されます。この設定ではすべてのアプリケーション オブジェクトが dbo スキーマに格納されます。
EXEC dbo.NSQuantumExecutionTime
@MinExecutionTime = 0;
B. 最短値と最長値の間のすべてのクォンタムを返す
次の例では、30 秒から 35 秒の範囲で実行されたすべてのジェネレータ クォンタムのクォンタム実行時間レポートを生成します (NULL 値は min_time + 5 と同じです)。
この例では、ADF の要素 SchemaName で指定された Stock スキーマ内に、ストアド プロシージャと他のすべてのアプリケーション オブジェクトが格納されます。
EXEC Stock.NSQuantumExecutionTime
@MinExecutionTime = 30,
@MaxExecutionTime = NULL,
@SinceQuantumInitialized = 0;
参照
関連項目
Notification Services ストアド プロシージャ (Transact-SQL)
NSQuantumDetails (Transact-SQL)
その他の技術情報
Notification Services パフォーマンス レポート
SchemaName 要素 (ADF)