使用報告來分析效能
更新: 2006 年 7 月 17 日
分析 Microsoft SQL Server Notification Services 效能時,先要判定執行個體及其應用程式的執行方式。若要取得這個資訊,請使用應用程式快照集及管理報表:
- 應用程式快照集報表是由 NSSnapshotApplications (Transact-SQL) 預存程序產生。例如,您可以使用這個報表來查看產生器執行是否比排程落後,或資料是否正在被移除處理序移除。
- 管理報表是由 NSAdministrationHistory (Transact-SQL) 預存程序產生。例如,您可以使用這個報表來尋找失敗的通知批次。
這些報表會協助您判定應用程式是否如預期執行。如果沒有,則使用以下方法來分析低效能。
分析低效能
分析 Notification Services 應用程式從產生器配量開始。產生器是 Notification Services 的核心,當執行個體正在執行時,產生器應該會按稱為配量的固定時間間隔來引發動作。配量的持續時間是在應用程式定義檔案 (ADF) 中指定。產生器使用配量持續時間來判定 ADF 中所定義規則的引發頻率。
分析效能問題時,您通常會尋找未按預期完成的配量週期,再判定那些配量執行期間發生什麼事情。使用下列方法來尋找要分析的配量,取得有關配量的詳細資料,再分析執行個體及應用程式詳細資料。
如需有關配量間隔的詳細資訊,請參閱<訂閱處理架構>和<指定產生器配量持續時間>。
步驟 1:判定想要的配量
分析 Notification Services 應用程式的第一步就是識別一組相關的配量週期。與低效能相關的配量週期通常具有下列其中一項特性:
- 配量的執行時間比預期長。這可能由好幾個因素造成,您必須進一步分析應用程式以判定其原因。
- 配量被標記為已失敗。配量週期可能有好幾個失敗的原因,例如規則未按計劃執行。
- 配量被略過。為了使產生器持續處理目前資料,您可以在必要時設定產生器略過配量週期。略過的配量通常是長時間執行配量週期的副作用。
為了協助識別長時間執行、失敗或略過的配量週期,Notification Services 提供配量效能、配量執行時間、配量失敗及略過的配量報表。
- 配量效能報表會根據配量執行時間來對配量進行分類。這可以協助您決定配量一般執行的時間長度。NSQuantumPerformance (Transact-SQL) 預存程序會產生這份報表。
- 配量執行時間報表包含執行時間比指定時間長的配量。使用配量識別碼,您可以更詳細的分析配量。NSQuantumExecutionTime (Transact-SQL) 預存程序會產生這份報表。
- 配量失敗報表提供失敗之產生器配量的相關資訊。如果配量無法完成所需的處理 (例如規則引發),則配量失敗。NSQuantumFailures (Transact-SQL) 預存程序會產生這份報表。
- 略過的配量報表提供略過的產生器配量的相關資訊。如果產生器落後且 ADF 中設定了配量限制,就可以略過配量。NSQuantumsSkipped (Transact-SQL) 預存程序會產生這份報表。
**案例:**使用 NSQuantumPerformance 預存程序,您可以決定配量 188 的執行時間為其他配量執行時間的兩倍。下一步是發現該配量期間發生什麼事情。
步驟 2:分析詳細的配量資訊
識別了想要的配量之後,請判定配量期間發生了什麼事情。若要取得有關配量的詳細資料,請使用配量詳細資料及配量清單報表。
- 配量詳細資料報表提供關於指定配量的詳細資訊。使用這個報表對長時間執行的配量進行疑難排解或分析配量處理。NSQuantumDetails (Transact-SQL) 預存程序會產生這份報表。
- 配量清單報表提供指定期間內已處理之配量的相關資訊,以配量執行的順序來顯示配量。NSQuantumList (Transact-SQL) 預存程序會產生這份報表。
**案例:**繼續在上述步驟 1 中導入的案例,針對配量 188 執行 NSQuantumDetails 預存程序。根據報表,您會發現其中一個規則引發消耗了 90% 的配量時間。下一個步驟是查看這個配量及其他配量的事件和通知批次。使用這個報表,請注意在這個配量期間會處理事件批次 60 和通知批次 40。
步驟 3:分析詳細的應用程式資料
分析配量週期之後,您可能想要集中分析配量中的特定事件、訂閱或通知。事件批次詳細資料報表、已排程的訂閱詳細資料報表及通知批次詳細資料報表提供有關應用程式資料的詳細資訊。
- 事件批次詳細資料報表提供了事件類別之特定事件批次的相關資訊。報表顯示事件批次的相關摘要資訊,再顯示批次中每一個事件的相關資訊。NSEventBatchDetails (Transact-SQL) 預存程序會產生這份報表。使用 NSEventBatchList (Transact-SQL) 預存程序來取得事件批次識別碼。
- 已排程的訂閱詳細資料報表提供訂閱類別中所有訂閱的相關資訊。NSScheduledSubscriptionDetails (Transact-SQL) 預存程序會產生這份報表。
- 如果使用條件動作,訂閱條件資訊報表會傳回用來評估條件式訂閱的查詢。NSSubscriptionConditionInformation (Transact-SQL) 預存程序會產生這份報表。
- 通知批次詳細資料報表提供通知類別之特定通知批次的相關資訊。報告顯示通知批次的相關摘要資訊,再顯示批次中每一個通知的相關資訊。NSNotificationBatchDetails (Transact-SQL) 預存程序會產生這份報表。使用 NSNotificationBatchList (Transact-SQL) 預存程序來取得通知批次識別碼。
- 您也可以使用任何診斷或快照集報表以不同的詳細程度查看應用程式。
**案例:**若要結束分析配量 188,您先要執行事件批次 60 的 NSEventBatchDetails 預存程序,並注意在這個配量期間會收集大量事件。使用 NSDiagnosticEventClass,您可以判定這個事件批次是否實質上具有比其他大多數事件類別更多的事件,這說明比一般配量執行時間還要長,並不表示有應用程式問題;然而,可能需要對應用程式進行最佳化 (例如最佳化查詢和加入索引) 來增進效能。
請參閱
概念
Notification Services 效能報告
監視 Notification Services 效能與活動