Freigeben über


Verwenden von Berichten zur Leistungsanalyse

Aktualisiert: 17. Juli 2006

Beginnen Sie die Leistungsanalyse von Microsoft SQL Server Notification Services damit, das Leistungsverhalten einer Instanz und der zugehörigen Anwendungen zu bestimmen. Verwenden Sie den Anwendungssnapshot und die administrativen Berichte, um diese Informationen abzurufen:

  • Der Anwendungssnapshotbericht wird von der gespeicherten Prozedur NSSnapshotApplications (Transact-SQL) erstellt. Diesem Bericht können Sie z. B. entnehmen, ob der Generator den Zeitplan einhält oder ob von Vacuumer Daten entfernt werden.
  • Der administrative Bericht wird von der gespeicherten Prozedur NSAdministrationHistory (Transact-SQL) erstellt. In diesem Bericht können Sie z. B. nach Benachrichtigungsbatches suchen, die Fehler erzeugt haben.

Die Berichte sind hilfreich, um zu bestimmen, ob die Anwendungen die erwartete Leistung zeigen. Ist dies nicht der Fall, können Sie die unbefriedigende Leistung mit dem folgenden Verfahren analysieren.

Analysieren einer unbefriedigenden Leistung

Das Analysieren von Notification Services-Anwendungen beginnt mit dem Generatorquantum. Der Generator bildet das Kernstück von Notification Services. Wenn die Instanz ausgeführt wird, sollte er in einem regelmäßigen Zeitintervall ausgelöst werden, das als Quantum bezeichnet wird. Sie geben die Dauer eines Quantums in der Anwendungsdefinitionsdatei (ADF, Application Definition File) an. Der Generator verwendet die Quantumdauer, um zu bestimmen, wie häufig in der ADF definierte Regeln ausgelöst werden sollen.

Beim Analysieren von Leistungsproblemen suchen Sie in der Regel nach Quantumperioden, die nicht wie erwartet abgeschlossen wurden, und bestimmen dann, was in diesen Quanten geschehen ist. Verwenden Sie die folgende Vorgehensweise, um nach zu analysierenden Quanten zu suchen, Details zu den Quanten abzurufen und dann Instanz- und Anwendungsdetails zu analysieren.

Weitere Informationen zu Quantumintervallen finden Sie unter Architektur der Abonnementverarbeitung und Angeben der Generatorquantumdauer.

Schritt 1: Bestimmen Sie ein Quantum von Interesse

Der erste Schritt beim Analysieren einer Notification Services-Anwendung besteht darin, einen Satz relevanter Quantumperioden zu identifizieren. Eine Quantumperiode, die für eine unbefriedigende Leistung relevant ist, besitzt üblicherweise eine der folgenden Eigenschaften:

  • Das Quantum wird länger als erwartet ausgeführt. Dies kann verschiedene Ursachen haben; Sie müssen die Anwendung weiter analysieren, um die Ursache zu bestimmen.
  • Das Quantum ist als einen Fehler erzeugend markiert. In einer Quantumperiode können aus verschiedenen Gründen Fehler auftreten, z. B., weil eine Regel nicht wie geplant ausgeführt wurde.
  • Das Quantum wurde ausgelassen. Damit der Generator weiter aktuelle Daten verarbeitet, können Sie den Generator so konfigurieren, dass bei Bedarf Quantumperioden ausgelassen werden. Ausgelassene Quanten sind üblicherweise eine Nebenwirkung lang andauernder Quantumperioden.

Zur Identifizierung lang andauernder, Fehler erzeugender oder ausgelassener Quantumperioden stellt Notification Services die Berichte über die Quantumleistung, über die Quantumausführungszeit, über Fehler bei Quanten und über ausgelassene Quanten bereit.

  • Der Bericht über die Quantumleistung gruppiert Quanten nach ihren Ausführungszeiten. Dies kann Ihnen dabei helfen, die allgemeine Ausführungszeit von Quanten zu bestimmen. Die gespeicherte Prozedur NSQuantumPerformance (Transact-SQL) erstellt diesen Bericht.
  • Der Bericht über die Quantumausführungszeit enthält Quanten, die länger als über einen bestimmten Zeitraum ausgeführt werden. Mithilfe der Quantum-IDs können Sie dann die Quanten genauer analysieren. Die gespeicherte Prozedur NSQuantumExecutionTime (Transact-SQL) erstellt diesen Bericht.
  • Der Bericht über Fehler bei Quanten stellt Informationen zu Generatorquanten bereit, die einen Fehler erzeugt haben. Ein Quantum erzeugt einen Fehler, wenn die erforderliche Verarbeitung, z. B. die Regelauslösungen, nicht abgeschlossen werden konnte. Die gespeicherte Prozedur NSQuantumFailures (Transact-SQL) erstellt diesen Bericht.
  • Der Bericht über ausgelassene Quanten stellt Informationen zu ausgelassenen Generatorquanten bereit. Quanten können ausgelassen werden, wenn der Generator nicht nachkommt und Quantumgrenzen in der ADF festgelegt sind. Die gespeicherte Prozedur NSQuantumsSkipped (Transact-SQL) erstellt diesen Bericht.

Szenario: Mithilfe der gespeicherten Prozedur NSQuantumPerformance stellen Sie möglicherweise fest, dass Quantum 188 doppelt so lange gedauert hat wie alle anderen Quanten. Im nächsten Schritt muss untersucht werden, was in diesem Quantum geschah.

Schritt 2: Analysieren Sie detaillierte Quantuminformationen

Nachdem Sie ein Quantum von Interesse identifiziert haben, bestimmen Sie, was während des Quantums geschah. Verwenden Sie den Bericht über Quantumdetails und den Quantenlistenbericht, um Details zu dem Quantum zu erhalten.

  • Der Bericht über Quantumdetails stellt detaillierte Informationen zu einem bestimmten Quantum bereit. Verwenden Sie diesen Bericht für die Problembehandlung bei lang andauernden Quanten oder zum Analysieren der Quantumverarbeitung. Die gespeicherte Prozedur NSQuantumDetails (Transact-SQL) erstellt diesen Bericht.
  • Der Quantenlistenbericht stellt Informationen zu Quanten bereit, die in einem bestimmten Zeitraum verarbeitet wurden, und zeigt die Quanten in der Reihenfolge ihrer Ausführung an. Die gespeicherte Prozedur NSQuantumList (Transact-SQL) erstellt diesen Bericht.

Szenario: Als Fortsetzung des oben in Schritt 1 eingeführten Szenarios führen Sie die gespeicherte Prozedur NSQuantumDetails für Quantum 188 aus. In dem Bericht stellen Sie fest, dass eine der Regelauslösungen 90 % der Quantumzeit verbraucht hat. Im nächsten Schritt müssen die Ereignis- und Benachrichtigungsbatches für dieses und andere Quanten betrachtet werden. Anhand des Berichts stellen Sie fest, dass in diesem Quantum der Ereignisbatch 60 und der Benachrichtigungsbatch 40 verarbeitet wurden.

Schritt 3: Analysieren Sie detaillierte Anwendungsdaten

Nach dem Analysieren einer Quantumperiode sollten Sie sich auf die speziellen Ereignisse, Abonnements oder Benachrichtigungen in diesem Quantum konzentrieren. Der Ereignisbatch-Detailbericht, der Detailbericht über geplante Abonnements und der Benachrichtigungsbatch-Detailbericht stellen ausführliche Informationen zu Anwendungsdaten bereit.

  • Der Ereignisbatch-Detailbericht stellt Informationen zu einem bestimmten Ereignisbatch für eine Ereignisklasse bereit. Der Bericht zeigt zusammenfassende Informationen zu dem Ereignisbatch sowie Informationen zu jedem Ereignis in dem Batch. Die gespeicherte Prozedur NSEventBatchDetails (Transact-SQL) erstellt diesen Bericht. Verwenden Sie die gespeicherte Prozedur NSEventBatchList (Transact-SQL), um Ereignisbatch-IDs abzurufen.
  • Der Detailbericht über geplanteAbonnements stellt Informationen zu allen Abonnements in einer Abonnementklasse bereit. Die gespeicherte Prozedur NSScheduledSubscriptionDetails (Transact-SQL) erstellt diesen Bericht.
  • Wenn Bedingungsaktionen verwendet werden, gibt der Abonnementbedingungs-Informationsbericht die Abfrage zurück, die zum Auswerten eines bedingungsbasierten Abonnements verwendet wird. Die gespeicherte Prozedur NSSubscriptionConditionInformation (Transact-SQL) erstellt diesen Bericht.
  • Der Benachrichtigungsbatch-Detailbericht stellt Informationen zu einem bestimmten Benachrichtigungsbatch für eine Benachrichtigungsklasse bereit. Der Bericht zeigt zusammenfassende Informationen zu dem Benachrichtigungsbatch sowie Informationen zu jeder Benachrichtigung in dem Batch. Die gespeicherte Prozedur NSNotificationBatchDetails (Transact-SQL) erstellt diesen Bericht. Verwenden Sie die gespeicherte Prozedur NSNotificationBatchList (Transact-SQL), um Benachrichtigungsbatch-IDs abzurufen.
  • Sie können auch alle Diagnose- oder Snapshotberichte verwenden, um Anwendungen in verschiedenen Detaillierungsgraden zu betrachten.

Szenario: Zum Abschluss der Analyse von Quantum 188 führen Sie zunächst die gespeicherte Prozedur NSEventBatchDetails für den Ereignisbatch 60 aus und stellen fest, dass in diesem Quantum eine große Anzahl von Ereignissen aufgelistet wurde. Sie bestimmen mithilfe von NSDiagnosticEventClass, dass dieser Ereignisbatch wesentlich mehr Ereignisse als die meisten Ereignisklassen umfasste. Dies zeigt Ihnen, dass die längere Quantumausführungszeit nicht auf ein Anwendungsproblem hinweist. Möglicherweise ist jedoch für eine Leistungsverbesserung eine Optimierung der Anwendung, z. B. das Optimieren der Abfragen und Hinzufügen von Indizes, erforderlich.

Siehe auch

Konzepte

Notification Services-Leistungsberichte
Überwachen der Leistung und Aktivität von Notification Services

Hilfe und Informationen

Informationsquellen für SQL Server 2005