次の方法で共有


NSDiagnosticEventProvider (Transact-SQL)

Microsoft SQL Server Notification Services アプリケーションに関するイベント プロバイダのレポートを生成します。レポートには、指定したイベント プロバイダを通じて収集されたイベントに関する情報が表示されます。

構文

[ schema_name . ] NSDiagnosticEventProvider 
    [ @ApplicationName = ] 'app_name' ,
    [ @EventProviderName = ] 'event_provider_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

引数

[ @ApplicationName = ] 'app_name'

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

[ @EventProviderName = ] 'event_provider_name'

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

EventBatchesSubmitted

int

レポート間隔の間に、指定したイベント プロバイダによって送信されたイベント バッチの数

EventsSubmitted

int

レポート間隔の間に、指定したイベント プロバイダによって送信されたイベントの数

AvgTimeCollectingEvents

float

レポート間隔の間に、指定したイベント プロバイダがイベントの収集に費やした平均時間 (秒単位)

UnfinishedEventBatches

int

レポート間隔の間に、指定したイベント プロバイダによって開始されたが、未完了のイベント バッチの数

解説

Notification Services でインスタンスを作成すると、インスタンス データベース内に NSDiagnosticEventProvider ストアド プロシージャが作成されます。インスタンスを更新すると、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 アプリケーションと FlightEP イベント プロバイダを対象に、イベント プロバイダ診断レポートを生成します。インスタンスでは、既定のデータベース設定が使用されます。この設定では、すべてのインスタンス オブジェクトが dbo スキーマに格納されます。

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

EXEC dbo.NSDiagnosticEventProvider 
    @ApplicationName = N'Flight', 
    @EventProviderName = N'FlightEP', 
    @ReportingInterval = 50, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

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

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

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

EXEC FlightInstance.NSDiagnosticEventProvider 
    @ApplicationName = N'Flight', 
    @EventProviderName = N'FlightEP';

参照

関連項目

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

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手