次の方法で共有


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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手