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
這是每個報告間隔中的產生器配量數。於報表內每個間隔各有一個資料列。interval 是 int,預設值是 1,表示每個間隔各一個產生器配量。
配量期間定義在應用程式定義檔案 (ADF) 中。
[ @StartDateTime = ] 'start_date_time'
這是報表的開始日期和時間,以國際標準時間 (UTC) 或格林威治標準時間 (GMT) 表示。start_date_time 是 datetime。預設值是 @EndDateTime - (5 * QuantumDuration * @ReportingInterval)。當使用預設值時,結果集包含最多五個資料列,每個資料列代表一個報告間隔。
[ @EndDateTime = ] 'end_date_time'
這是報表的結束日期和時間 (以 UTC 為單位)。end_date_time 是 datetime。預設值是您叫用預存程序的時間 (以 UTC 為單位)。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
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) 固定伺服器角色的成員。
範例
A. 指定報告間隔、開始時間和結束時間
這個範例會產生 Flight 應用程式和 FlightEP 事件提供者的事件提供者診斷報表。執行個體使用預設資料庫設定,將所有執行個體物件放在 dbo 結構描述中。
這份報表每個報告間隔包含 50 個產生器配量。報表從 2004 年 5 月 23 日下午 5:00 開始,同一天的下午 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 結構描述中。
這份報表會使用預設值,以指定顯示最後五個產生器配量的資料。
EXEC FlightInstance.NSDiagnosticEventProvider
@ApplicationName = N'Flight',
@EventProviderName = N'FlightEP';
請參閱
參考
Notification Services 預存程序 (Transact-SQL)
其他資源
Notification Services 效能報告
SchemaName Element (ICF)