NSDiagnosticSubscriptionClass (Transact-SQL)
Microsoft SQL Server Notification Services アプリケーションのサブスクリプション クラス診断レポートを生成します。このレポートには、サブスクリプション クラスに基づくルール実行の回数や通知の配信などの情報が含まれます。これらの情報は、サブスクリプション クラスの処理で問題が生じたときのトラブルシューティングに利用できます。
構文
[ schema_name . ] NSDiagnosticSubscriptionClass
[ @ApplicationName = ] 'app_name' ,
[ @SubscriptionClassName = ] 'subscription_class_name'
[, [ @ReportingInterval = ] interval ]
[, [ @StartDateTime = ] 'start_date_time' ]
[, [ @EndDateTime = ] 'end_date_time' ]
引数
[ @ApplicationName = ] 'app_name'
構成ファイルで定義されている、アプリケーションの名前を指定します。app_name のデータ型は nvarchar(255) で、既定値はありません。
[ @SubscriptionClassName = ] 'subscription_class_name'
アプリケーション定義ファイル (ADF) で定義されている、サブスクリプション クラスの名前を指定します。subscription_class_name のデータ型は nvarchar(255) で、既定値はありません。
[ @ReportingInterval =] interval
各レポート間隔に含めるジェネレータ クォンタムの数を指定します。1 つの間隔ごとに 1 行のデータが作成されます。interval のデータ型は int で、既定値は 1 です。これは、1 間隔に 1 ジェネレータ クォンタムを含めることを表します。
クォンタムの期間は、アプリケーション定義ファイル (ADF) で定義します。
[ @StartDateTime = ] 'start_date_time'
レポートの開始日時を、UTC (協定世界時またはグリニッジ標準時) で指定します。start_date_time のデータ型は datetime です。既定値は、@EndDateTime - (5 * QuantumDuration * @ReportingInterval) です。既定値を使用した場合、結果セットに含まれる行数は最大で 5 行となります。1 つの行が 1 つのレポート間隔を表します。
[ @EndDateTime = ] 'end_date_time'
レポートの終了日時を、UTC で指定します。end_date_time のデータ型は datetime です。既定値は、ストアド プロシージャを呼び出した時刻 (UTC) です。
結果セット
列名 | データ型 | 説明 |
---|---|---|
IntervalStartDateTime |
datetime |
このレポート間隔の開始日時 (UTC)。 |
IntervalEndDateTime |
datetime |
このレポート間隔の終了日時 (UTC)。 |
SubscriptionsScheduledCount |
int |
このレポート間隔中に処理された定期的なサブスクリプションの数。 |
AvgScheduledSubscriptionWaitTime |
float |
この間隔中に処理が予定されていたサブスクリプションにおける、サブスクリプションの予定処理時刻とジェネレータがサブスクリプションを処理した実際の時刻の差を表す遅延時間の平均値。 |
AvgScheduledNotificationGenerationTime |
float |
この間隔中に処理が予定されていたサブスクリプションに関して、ジェネレータが定期的なサブスクリプションから新しい通知の生データを作成するために費やした時間の平均値。 |
AvgScheduledSubscriptionRuleFiringTime |
float |
この間隔中に処理が予定されていたサブスクリプションにおける、定期的なサブスクリプション ルールの実行時間の平均値。 |
ScheduledNotificationBatchCount |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、生成された通知バッチの数。 |
ScheduledNotificationCount |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、生成された通知の数。 |
AvgScheduledNotificationBatchWaitTillDistribution |
float |
レポート間隔中に定期的なサブスクリプションから生成された通知バッチを、ディストリビュータが配信処理開始するまでにかかった平均待機時間。 |
ScheduledNotificationDeliveryAttempts |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、通知の配信を試みた回数。 |
ScheduledNotificationSuccessfulDeliveries |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、配信が成功した通知の数。 |
ScheduledNotificationFailedAttempts |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、通知配信の試みが失敗した回数。 |
ScheduledNotificationsDeliveryNotAttempted |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、まだ配信を試みていない通知の数。 |
ScheduledNotificationsNotYetDelivered |
int |
この間隔中に処理が予定されていたサブスクリプションに関して、配信の試みがまだ行われていないか、試みたものの失敗したため、まだ配信されていない通知の数。 |
ScheduledNotificationToMessageRatio |
float |
この間隔中に処理が予定されていたサブスクリプションに関して、生成された通知の数と送信されたメッセージの数の比率。 |
AvgScheduledNotificationBatchSucceedDeliveryTime |
float |
ダイジェスト配信またはマルチキャスト配信の場合、1 つのメッセージに複数の通知を含めることができます。この場合、この列の値は、ダイジェスト メッセージまたはマルチキャスト メッセージに含まれていた通知の数の平均値を表します。 |
解説
Notification Services でインスタンスを作成すると、インスタンス データベース内に NSDiagnosticSubscriptionClass ストアド プロシージャが作成されます。インスタンスを更新すると、Notification Services ではストアド プロシージャが再コンパイルされます。
このストアド プロシージャは、インスタンス構成ファイル (ICF) の要素 SchemaName で指定される、インスタンス スキーマ内に格納されます。スキーマ名が指定されない場合、既定のスキーマ dbo が使用されます。
レポート間隔に含まれる定期的なサブスクリプションは、定期的なルールの実行時間が IntervalStartDateTime の値より大きく、かつ IntervalEndDateTime 以下である条件を満たすサブスクリプションです。
現在の UTC 時間を調べるには、SQL Server Management Studio で SELECT GETUTCDATE() を実行します。現在の UTC 時間は、SQL Server を実行しているコンピュータのオペレーティング システムで設定されているタイム ゾーンと現在のローカル時間から算出されます。
権限
実行権限は、既定では NSAnalysis データベース ロール、db_owner データベース ロール、および sysadmin 固定サーバー ロールのメンバに与えられています。
戻り値
0 (成功) または 1 (失敗)
例
A. レポート間隔、開始時刻、終了時刻の値を指定する
次の例では、Flight アプリケーションの FlightSubscriptions サブスクリプション クラスを対象に、サブスクリプション クラス診断レポートを生成します。インスタンスでは、既定のデータベース設定が使用されます。この設定では、すべてのインスタンス オブジェクトが dbo スキーマに格納されます。
1 レポート間隔に含めるジェネレータ クォンタムの数は 50 です。レポートの開始日時は 2004 年 5 月 23 日午後 5:00、終了日時は同日の午後 6:00 です。
EXEC dbo.NSDiagnosticSubscriptionClass
@ApplicationName = N'Flight',
@SubscriptionClassName = N'FlightSubscriptions',
@ReportingInterval = 50,
@StartDateTime = '2004-05-23 17:00',
@EndDateTime = '2004-05-23 18:00';
B. 既定値、指定したスキーマを使用する
次の例では、Flight アプリケーションの FlightSubscriptions サブスクリプション クラスを対象に、サブスクリプション クラス診断レポートを生成します。この例では、ICF の要素 SchemaName で指定された FlightInstance スキーマ内に、ストアド プロシージャと他のすべてのインスタンス オブジェクトが格納されています。
レポートでは既定値が使用されます。この場合、過去 5 つのクォンタムのサブスクリプション クラス データが表示されます。
EXEC FlightInstance.NSDiagnosticSubscriptionClass
@ApplicationName = N'Flight',
@SubscriptionClassName = N'FlightSubscriptions';
参照
関連項目
Notification Services ストアド プロシージャ (Transact-SQL)
その他の技術情報
Notification Services パフォーマンス レポート
SchemaName 要素 (ICF)