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_name 是 nvarchar(255),沒有預設值。
[ @NotificationClassName=] 'notification_class_name'
這是符合應用程式定義檔案 (ADF) 所定義的通知類別名稱。notification_class_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。預設值是 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)