共用方式為


NSDiagnosticNotificationClass (Transact-SQL)

產生 Microsoft SQL Server Notification Services 應用程式的通知類別報表。這份報表提供通知類別所處理的通知和通知批次數目,以及通知是否傳遞成功。

語法

[ schema_name . ] NSDiagnosticNotificationClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @NotificationClassName = ] 'notification_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

引數

[ @ApplicationName = ] 'app_name'

這是符合組態檔所定義的應用程式名稱。app_namenvarchar(255),沒有預設值。

[ @NotificationClassName=] 'notification_class_name'

這是符合應用程式定義檔案 (ADF) 所定義的通知類別名稱。notification_class_namenvarchar(255),沒有預設值

[ @ReportingInterval=] interval

這是每個報告間隔中的產生器配量數。於報表內每個間隔各有一個資料列。intervalint,預設值是 1,表示每個間隔各一個產生器配量。

配量期間定義在應用程式定義檔案 (ADF) 中。

[ @StartDateTime = ] 'start_date_time'

這是報表的開始日期和時間,以國際標準時間 (UTC) 或格林威治標準時間 (GMT) 表示。start_date_timedatetime。預設值是在 @EndDateTime 值之前的 (5 * QuantumDuration * @ReportingInterval)。當使用預設值時,結果集包含最多五個資料列,每個資料列代表一個報告間隔。

[ @EndDateTime = ] 'end_date_time'

這是報表的結束日期和時間 (以 UTC 為單位)。end_date_timedatetime。預設值是 GETUTCDATE 函數的結果,它會傳回叫用預存程序的時間。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

資料行名稱 資料類型 描述

IntervalStartDateTime

datetime

報告間隔的開始日期和時間 (以 UTC 為單位)。

IntervalEndDateTime

datetime

報告間隔的結束日期和時間 (以 UTC 為單位)。

NotificationBatchesGenerated

int

在報告間隔期間,通知類別所產生的通知批次數目。

NotificationsGenerated

int

在報告間隔期間,通知類別所產生的通知數目。

NotificationsGeneratedPerSecond

float

在報告間隔期間,通知類別每秒所產生的通知數目。

AvgNotificationBatchWaitTillDistribution

float

在報告間隔期間,散發者取出通知類別的通知批次之前的平均等待時間。

NotificationDeliveryAttempts

int

報告間隔期間產生的給定通知類別之通知批次,所嘗試的通知傳遞次數。

NotificationSuccessfulDeliveries

int

報告間隔期間產生的給定通知類別之通知批次,通知傳遞成功的次數。

NotificationFailedAttempts

int

報告間隔期間產生的給定通知類別之通知批次,所嘗試的通知傳遞失敗次數。

NotificationsDeliveryNotAttempted

int

報告間隔期間產生的給定通知類別之通知批次,散發者尚未嘗試傳遞的通知數目。

NotificationsNotYetDelivered

int

報告間隔期間產生的給定通知類別之通知批次,因尚未嘗試傳遞,或嘗試傳遞失敗,而尚未傳遞的通知數目。

NotificationToMessageRatio

float

報告間隔期間產生的通知批次,產生的通知與傳送之訊息的比例。

如果是摘要或多重傳遞,單一訊息可以包括多項通知。這個資料行指出摘要或多重播送訊息所包含的平均通知數。

AvgNotificationBatchSucceedDeliveryTime

float

報告間隔期間產生的通知批次,散發處理序順利傳送通知的平均時間。

備註

當您建立執行個體時,Notification Services 會在執行個體資料庫中,建立 NSDiagnosticNotificationClass 預存程序。當您更新執行個體時,Notification Services 會重新編譯預存程序。

這個預存程序在執行個體組態檔 (ICF) 的 SchemaName 元素所指定的執行個體結構描述中。如果未提供結構描述名稱,預設結構描述便是 dbo

EndGenerationTime 值大於 IntervalStartDateTime,且小於或等於 IntervalEndDateTime 時,通知批次便在報告間隔內。

若要判斷目前的 UTC 日期和時間,請在 SQL Server Management Studio 中,執行 SELECT GETUTCDATE()。目前 UTC 時間是從目前本機時間和執行 SQL Server 之電腦的作業系統時區設定衍生而來。

權限

執行權限預設會授與 NSAnalysis 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。

範例

A. 指定報告間隔、開始時間和結束時間值

下列範例會產生 Flight 應用程式和 FlightNotifications 通知類別的通知類別診斷報表。執行個體使用預設資料庫設定,將所有執行個體物件放在 dbo 結構描述中。

這份報表每個報告間隔包含 60 個產生器配量。報表從 2002 年 5 月 23 日下午 5:00 開始,同一天的下午 6:00 結束:

EXEC dbo.NSDiagnosticNotificationClass 
    @ApplicationName = N'Flight', 
    @NotificationClassName = N'FlightNotifications', 
    @ReportingInterval = 60, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

B. 使用預設值,具名結構描述

下列範例會產生 Flight 應用程式和 FlightNotifications 通知類別的通知類別診斷報表。在這個範例中,依照 ICF 的 SchemaName 元素所指定,預存程序 (如同所有其他執行個體物件) 是在 FlightInstance 結構描述中。

這份報表會使用預設值,以指定顯示最後五個產生器配量的資料。

EXEC FlightInstance.NSDiagnosticNotificationClass 
    @ApplicationName = N'Flight', 
    @NotificationClassName = N'FlightNotifications';

請參閱

參考

Notification Services 預存程序 (Transact-SQL)

其他資源

Notification Services 效能報告
SchemaName Element (ICF)

說明及資訊

取得 SQL Server 2005 協助