次の方法で共有


NSDiagnosticEventClass (Transact-SQL)

Microsoft SQL Server Notification Services アプリケーションのイベント クラス レポートを生成します。このレポートは、イベント収集で発生した問題のトラブルシューティングに役立ちます。このレポートでは、アプリケーションによるイベント処理の内容を知ることができます。

構文

[ schema_name . ] NSDiagnosticEventClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @EventClassName = ] 'event_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

引数

[ @ApplicationName = ] 'app_name'

構成ファイルで定義されている、アプリケーションの名前を指定します。app_name のデータ型は nvarchar(255) で、既定値はありません。

[ @EventClassName =] 'event_class_name'

アプリケーション内で使用しているイベント クラスの名前を指定します。event_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)。

EventBatchesCollectedCount

int

レポート間隔中に収集されたイベント バッチの数。レポート間隔中に収集処理が完了したバッチだけがカウントされます。

UnfinishedEventBatches

int

レポート間隔中に開始され、完了していないイベント バッチの数。

AvgEventBatchEventCount

float

レポート間隔中に収集されたイベント バッチに関する、バッチあたりのイベント数の平均値。

AvgEventsCollectedPerSecond

float

レポート間隔中に収集されたイベント バッチに関する、1 秒あたりに収集されたイベント数の平均値。

AvgGeneratorPickupWaitPerBatch

float

レポート間隔中に収集されたイベント バッチに関して、ジェネレータがイベント バッチに対しイベント サブスクリプション ルールを実行するまでにかかった時間の平均値 (秒単位)。

AvgEventChronicleRuleFiringTimePerBatch

float

レポート間隔中に収集されたイベント バッチに関して、イベント記録ルールの実行にかかった時間の平均値 (秒単位)。

AvgEventSubscriptionRuleFiringTimePerBatch

float

レポート間隔中に収集されたイベント バッチに関して、イベント サブスクリプション ルールの実行にかかった時間の平均値 (秒単位)。

EventNotificationBatchCount

int

レポート間隔中に収集されたイベント バッチから生成された通知バッチの数。

EventNotificationsGeneratedCount

int

レポート間隔中に収集されたイベント バッチから生成された通知の数。

AvgEventNotificationBatchGenerationTime

float

レポート間隔中に収集されたイベント バッチに関して、ジェネレータが通知バッチを作成したときにかかった時間の平均値 (秒単位)。

AvgEventNotificationBatchWaitTillDistribution

float

レポート間隔中に収集されたイベント バッチに関して、ディストリビュータが処理を開始するまで通知バッチが待機した時間の平均値 (秒単位)。

EventNotificationDeliveryAttempts

int

レポート間隔中に収集されたイベントから生成された通知の配信を試みた回数。

EventNotificationSuccessfulDeliveries

int

レポート間隔中に収集されたイベント バッチに関して、配信が成功した通知の数。

EventNotificationFailedAttempts

int

レポート間隔中に収集されたイベント バッチに関して、通知配信の試みが失敗した回数。

EventNotificationsDeliveryNotAttempted

int

レポート間隔中に収集されたイベント バッチに関して、ディストリビュータがまだ配信を試みていない通知の数。

EventNotificationsNotYetDelivered

int

レポート間隔中に収集されたイベント バッチに関して、配信の試みがまだ行われていないか、試みたものの失敗したため、まだ配信されていない通知の数。

EventNotificationToMessageRatio

float

レポート間隔中に収集されたイベント バッチに関して、生成された通知の数と送信されたメッセージの数の比率。

ダイジェスト配信またはマルチキャスト配信の場合、1 つのメッセージに複数の通知を含めることができます。この場合、この列の値は、ダイジェスト メッセージまたはマルチキャスト メッセージに含まれていた通知の数の平均値を表します。

AvgEventNotificationBatchSucceedDeliveryTime

float

レポート間隔中のイベント バッチから生成された通知に関して、配信処理を通じて正常に通知を送信するまでにかかった時間の平均値。

解説

Notification Services でインスタンスを作成すると、インスタンス データベース内に NSDiagnosticEventClass ストアド プロシージャが作成されます。インスタンスを更新すると、Notification Services ではストアド プロシージャが再コンパイルされます。

このストアド プロシージャは、インスタンス構成ファイル (ICF) の要素 SchemaName で指定される、インスタンス スキーマ内に格納されます。スキーマ名が指定されない場合、既定のスキーマ dbo が使用されます。

レポート間隔に含まれるイベント バッチは、EndCollectionTime の値が IntervalStartDateTime の値より大きく、かつ IntervalEndDateTime 以下である条件を満たすイベント バッチです。

現在の UTC 時間を調べるには、SQL Server Management Studio で SELECT GETUTCDATE() を実行します。現在の UTC 時間は、SQL Server を実行しているコンピュータのオペレーティング システムで設定されているタイム ゾーンと現在のローカル時間から算出されます。

権限

実行権限は、既定では NSAnalysis データベース ロール、db_owner 固定データベース ロール、および sysadmin 固定サーバー ロールのメンバに与えられています。

戻り値

0 (成功) または 1 (失敗)

A. レポート間隔、開始時刻、および終了時刻を指定する

次の例では、Flight アプリケーションの FlightEvents イベントクラスを対象に、イベント クラス診断レポートを生成します。インスタンスでは、既定のデータベース設定が使用されます。この設定では、すべてのインスタンス オブジェクトが dbo スキーマに格納されます。

1 レポート間隔に含めるジェネレータ クォンタムの数は 40 です。レポートの開始日時は 2004 年 5 月 23 日午後 5:00、終了日時は同日の午後 6:00 (UTC) です。

EXEC dbo.NSDiagnosticEventClass 
    @ApplicationName = N'Flight', 
    @EventClassName = N'FlightEvents', 
    @ReportingInterval = 40, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

B. 既定値、指定したスキーマを使用する

次の例では、Flight アプリケーションの FlightEvents イベントクラスを対象に、イベント クラス診断レポートを生成します。この例では、ICF の要素 SchemaName で指定された FlightInstance スキーマ内に、ストアド プロシージャと他のすべてのインスタンス オブジェクトが格納されています。

レポートでは既定値が使用されます。この場合、過去 5 つのジェネレータ クォンタムのデータが表示されます。

EXEC FlightInstance.NSDiagnosticEventClass
    @ApplicationName = N'Flight',
    @EventClassName = N'FlightEvents';

参照

関連項目

Notification Services ストアド プロシージャ (Transact-SQL)

その他の技術情報

Notification Services パフォーマンス レポート
SchemaName 要素 (ICF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手