NSAdministrationHistory (Transact-SQL)
產生 Microsoft SQL Server Notification Services 執行個體的管理歷程記錄報表。這份報表包含執行個體所主控之所有應用程式的相關資訊,其中包括在定義的時間間隔中所處理的事件、通知和訂閱。
語法
[ schema_name . ] NSAdministrationHistory
[ [ @ApplicationName = ] 'app_name' ],
[, [ @ReportingIntervalInMinutes = ] interval ]
[, [ @StartDateTime = ] 'start_date_time' ]
[, [ @EndDateTime = ] 'end_date_time' ]
引數
[ @ApplicationName = ] 'app_name'
這是符合執行個體組態檔 (ICF) 所定義的 Notification Services 應用程式名稱。app_name 是 nvarchar(255),預設值是 NULL,表示產生執行個體所主控之所有應用程式的報表。
[ @ReportingIntervalInMinutes = ] interval
這是每個報告間隔的分鐘數。於報表內每個間隔各有一個資料列。interval 是 int,預設值是 60,表示每個報告間隔各 60 分鐘。
[ @StartDateTime = ] 'start_date_time'
這是報表的開始日期和時間,以國際標準時間 (UTC) 或格林威治標準時間 (GMT) 表示。start_date_time 是 datetime,預設值是 @EndDateTime 值之前的一個月。
[ @EndDateTime = ] 'end_date_time'
這是報表的結束日期和時間 (以 UTC 為單位)。end_date_time 值的資料類型是 datetime。預設值是 GETUTCDATE 函數的結果,它會傳回叫用預存程序的時間。
傳回碼值
無
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
ApplicationName |
nvarchar(255) |
資料列所摘要的應用程式名稱。摘要執行個體的資料列,這個值是 NULL。 |
IntervalStartDateTime |
datetime |
報告間隔的開始日期和時間 (以 UTC 為單位)。 |
IntervalEndDateTime |
datetime |
報告間隔的結束日期和時間 (以 UTC 為單位)。 |
EventBatchCollectedCount |
int |
報告間隔期間所收集的事件批次數目,以事件批次 EndCollectionTime 值為基礎。 |
EventsCollectedCount |
int |
報告間隔期間所收集的事件數目,以事件批次 EndCollectionTime 值為基礎。 |
EventsCollectedPerSecond |
float |
在事件收集期間,報告間隔每秒所收集的平均事件數。 |
EventBatchesAwaitingGeneration |
int |
已寫入資料庫但產生器尚未處理的事件批次數目。 |
EventBatchesInCollection |
int |
報告間隔期間,事件收集階段中的事件批次數目。 |
NotificationBatchGeneratedCount |
int |
報告間隔期間寫入的通知批次數目,以通知批次 EndGenerationTime 值為基礎。 |
NotificationsGeneratedCount |
int |
報告間隔期間產生的通知數目,以通知批次 EndGenerationTime 值為基礎。 |
NotificationsGeneratedPerSecond |
float |
在報告間隔期間,每秒所產生的平均通知數目。 |
NotificationBatchesInGeneration |
int |
在報告間隔期間,產生器建立的處理序中之通知批次數目。 |
NotificationBatchesAwaitingDistribution |
int |
在報告間隔期間,等待散發者取出的通知批次數目。 |
NotificationsSuccessfulDeliveredCount |
int |
報告間隔期間傳遞成功的通知數目。 |
NotificationsFailedDeliveryCount |
int |
在報告間隔期間,傳遞失敗且標示為到期的通知數目。 |
WorkItemsInProgress |
int |
報告間隔期間散發的工作項目數。 |
SubscriptionsAddedCount |
int |
在報告間隔期間,加入應用程式中的訂閱數目。 |
ScheduledSubscriptionsAdded |
int |
在報告間隔期間,加入應用程式中排程的訂閱數目。 |
SubscriptionsModified |
int |
在報告間隔期間,應用程式中已修改過的訂閱數目。 |
SubscribersAddedCount |
int |
在報告間隔期間,加入執行個體中的訂閱者數目。 |
SubscriberDevicesAddedCount |
int |
報告間隔期間所加入的訂閱者裝置數目。 假設在加入訂閱者時,也會加入裝置。 |
SubscriberDevicesModifiedCount |
int |
報告間隔期間所更新的訂閱者裝置數目。 假設在更新訂閱者時,也會更新裝置。 |
備註
當您建立執行個體時,Notification Services 會在執行個體資料庫中,建立 NSAdministrationHistory 預存程序。當您更新執行個體時,Notification Services 會重新編譯預存程序。
這個預存程序在執行個體組態檔 (ICF) 的 SchemaName 元素所指定的執行個體結構描述中。如果沒有提供結構描述名稱,預設結構描述便是 dbo。
應用程式定義檔案 (ADF) 的 VacuumDuration 元素所指定的移除處理保留期限,會限制這份報表所收集的資料量。只能分析尚未移除的資料。
若要判斷目前的 UTC 日期和時間,請執行 SELECT GETUTCDATE() Transact-SQL 查詢。目前 UTC 時間是從目前本機時間和電腦作業系統時區設定衍生而來。
權限
執行權限預設會授與 NSAnalysis 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。
範例
A. Flight 管理歷程記錄
下列範例會產生 Flight 應用程式的管理歷程記錄報表。執行個體使用預設資料庫設定,將所有執行個體物件放在 dbo 結構描述中。
報表間隔是 120 分鐘。報表從 2004 年 9 月 22 日上午 11:30 開始,同一天的下午 2:30 結束。
EXEC dbo.NSAdministrationHistory
@ApplicationName = N'Flight',
@ReportingIntervalInMinutes = 120,
@StartDateTime = '2004-09-22 11:30:00',
@EndDateTime = '2004-09-22 14:30:00';
B. 所有應用程式管理歷程記錄
下列範例會產生執行個體所主控之所有應用程式的管理歷程記錄報表。在這個範例中,依照 ICF 的 SchemaName 元素所指定,預存程序是在 FlightInstance 結構描述中。
這份報表使用預設值以及 60 分鐘的報告間隔來顯示上一個月的所有資料。
EXEC FlightInstance.NSAdministrationHistory;
請參閱
參考
Notification Services 預存程序 (Transact-SQL)
其他資源
Notification Services 效能報告
SchemaName Element (ICF)