NSDiagnosticEventClass (Transact-SQL)
Erstellt den Ereignisklassenbericht für eine Microsoft SQL Server Notification Services-Anwendung. Dieser Bericht unterstützt Sie bei der Problembehandlung der Ereignisauflistung und stellt Informationen zur Verarbeitung von Ereignissen durch die Anwendung bereit.
Syntax
[ schema_name . ] NSDiagnosticEventClass
[ @ApplicationName = ] 'app_name' ,
[ @EventClassName = ] 'event_class_name'
[, [ @ReportingInterval = ] interval ]
[, [ @StartDateTime = ] 'start_date_time' ]
[, [ @EndDateTime = ] 'end_date_time' ]
Argumente
[ @ApplicationName = ] 'app_name'
Der Name einer Anwendung gemäß Definition in der Konfigurationsdatei. app_name ist vom Datentyp nvarchar(255) und hat keinen Standardwert.
[ @EventClassName = ] 'event_class_name'
Der Name einer Ereignisklasse in der Anwendung. event_class_name ist vom Datentyp nvarchar(255) und hat keinen Standardwert.
[ @ReportingInterval = ] interval
Ist die Anzahl der Generatorquanten in einem Berichtsintervall. Der Bericht enthält eine Zeile pro Intervall. interval ist vom Datentyp int. Der Standardwert ist 1, was für ein Generatorquantum pro Intervall steht.
Die Quantumdauer ist in der Anwendungsdefinitionsdatei (ADF, Application Definition File) definiert.
[ @StartDateTime = ] 'start_date_time'
Ist das Startdatum und die Startzeit des Berichts in UTC (Coordinated Universal Time oder Greenwich Mean Time). start_date_time ist vom Datentyp datetime. Der Standardwert ist @EndDateTime - (5 * QuantumDuration * @ReportingInterval). Das Resultset enthält bei Verwendung des Standardwertes maximal fünf Zeilen, wobei jede Zeile für ein Berichtsintervall steht.
[ @EndDateTime = ] 'end_date_time'
Das Beendigungsdatum und die Beendigungszeit des Berichts in UTC. end_date_time ist vom Datentyp datetime. Der Standardwert ist die Uhrzeit, zu der Sie die gespeicherte Prozedur aufrufen (in UTC).
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Spaltenname | Datentyp | Beschreibung |
---|---|---|
IntervalStartDateTime |
datetime |
Startdatum und -zeit für das Berichtsintervall in UTC. |
IntervalEndDateTime |
datetime |
Beendigungsdatum und -zeit für das Berichtsintervall in UTC. |
EventBatchesCollectedCount |
int |
Anzahl der während des Berichtsintervalls aufgezeichneten Ereignisbatches. Es werden nur die Batches gezählt, die die Sammlung während des Intervalls beendet haben. |
UnfinishedEventBatches |
int |
Anzahl der während des Berichtsintervalls gestarteten, nicht jedoch beendeten Ereignisbatches. |
AvgEventBatchEventCount |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Anzahl von Ereignissen pro Batch an. |
AvgEventsCollectedPerSecond |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Anzahl von Ereignissen an, die pro Sekunde aufgezeichnet werden. |
AvgGeneratorPickupWaitPerBatch |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Dauer in Sekunden an, die der Generator zum Verarbeiten des Ereignisbatches benötigt hat (durch Ausführen einer Ereignisverlauf- oder Ereignisabonnementregel). |
AvgEventChronicleRuleFiringTimePerBatch |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Dauer in Sekunden an, die zur Ausführung von Ereignisverlaufsregeln benötigt wurde. |
AvgEventSubscriptionRuleFiringTimePerBatch |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Dauer in Sekunden an, die zur Ausführung von Ereignisabonnementregeln benötigt wurde. |
EventNotificationBatchCount |
int |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die Anzahl der generierten Benachrichtigungsbatches an. |
EventNotificationsGeneratedCount |
int |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die Anzahl der generierten Benachrichtigungen an. |
AvgEventNotificationBatchGenerationTime |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Dauer in Sekunden an, die der Generator zum Erstellen von Benachrichtigungsbatches benötigt. |
AvgEventNotificationBatchWaitTillDistribution |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die durchschnittliche Dauer in Sekunden an, die Benachrichtigungsbatches bis zur Verarbeitung durch den Verteiler gewartet haben. |
EventNotificationDeliveryAttempts |
int |
Die Anzahl der Übermittlungsversuche für Benachrichtigungen, die aus den während des Berichtsintervalls aufgezeichneten Ereignissen erstellt wurden. |
EventNotificationSuccessfulDeliveries |
int |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die Anzahl der erfolgreichen Benachrichtigungsübermittlungen an. |
EventNotificationFailedAttempts |
int |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, die Anzahl der fehlgeschlagenen Versuche der Benachrichtigungsübermittlung an. |
EventNotificationsDeliveryNotAttempted |
int |
Gibt für Benachrichtigungsbatches, die während des Berichtsintervalls aufgezeichnet wurden, die Anzahl der Benachrichtigungen an, die der Verteiler noch nicht zu übertragen versucht hat. |
EventNotificationsNotYetDelivered |
int |
Gibt für Benachrichtigungsbatches, die während des Berichtsintervalls aufgezeichnet wurden, die Anzahl der Benachrichtigungen an, die aufgrund eines noch nicht ausgeführten Versuchs oder aufgrund eines fehlerhaften Versuchs noch nicht übermittelt wurden. |
EventNotificationToMessageRatio |
float |
Gibt für Ereignisbatches, die während des Berichtsintervalls aufgezeichnet werden, das Verhältnis zwischen generierten Benachrichtigungen und gesendeten Nachrichten an. Bei einer Digestübermittlung oder Multicastübermittlung kann eine Meldung mehrere Benachrichtigungen umfassen. Diese Spalte gibt an, wie viele Benachrichtigungen im Durchschnitt in Digest- oder Multicastmeldungen enthalten sind. |
AvgEventNotificationBatchSucceedDeliveryTime |
float |
Durchschnittliche Zeit für das Senden von Benachrichtigungen im Rahmen des Verteilungsprozesses für Benachrichtigungen, die aus den Ereignisbatches des Intervalls generiert wurden. |
Hinweise
Notification Services erstellt die gespeicherte Prozedur NSDiagnosticEventClass in der Instanzdatenbank, wenn Sie die Instanz erstellen. Wenn Sie die Instanz aktualisieren, führt Notification Services eine erneute Kompilierung der gespeicherten Prozedur aus.
Diese gespeicherte Prozedur befindet sich im Instanzschema, das vom SchemaName-Element der Instanzkonfigurationsdatei (ICF) angegeben wird. Falls kein Schemaname bereitgestellt wurde, wird dbo als Standardschema verwendet.
Ereignisbatches liegen in einem Berichtsintervall, wenn der EndCollectionTime-Wert größer ist als IntervalStartDateTime und kleiner oder gleich dem IntervalEndDateTime-Wert ist.
Wenn Sie das aktuelle UTC-Datum bzw. die UTC-Uhrzeit ermitteln möchten, führen Sie SELECT GETUTCDATE() in SQL Server Management Studio aus. Die aktuelle UTC-Zeit wird von der aktuellen Ortszeit und der Zeitzoneneinstellung im Betriebssystem des Computers abgeleitet, auf dem SQL Server ausgeführt wird.
Berechtigungen
Standardmäßig verfügen Mitglieder der NSAnalysis-Datenbankrolle, der festen Datenbankrolle db_owner und der festen Serverrolle sysadmin über Ausführungsberechtigungen.
Beispiele
A. Angeben des Berichtsintervalls, der Start- und Beendigungszeit
Im folgenden Beispiel wird der Ereignisklassen-Diagnosebericht für die Flight-Anwendung und die FlightEvents-Ereignisklasse erstellt. Von der Instanz werden die standardmäßigen Datenbankeinstellungen verwendet, von denen alle Instanzobjekte im dbo-Schema platziert werden.
Der Bericht umfasst 40 Generatorquanten in einem Berichtsintervall. Der Bericht beginnt um 17.00 Uhr am 23. Mai. 2004 und endet an diesem Tag um 18.00 Uhr (Angaben in UTC):
EXEC dbo.NSDiagnosticEventClass
@ApplicationName = N'Flight',
@EventClassName = N'FlightEvents',
@ReportingInterval = 40,
@StartDateTime = '2004-05-23 17:00',
@EndDateTime = '2004-05-23 18:00';
B. Verwenden von Standardwerten für ein benanntes Schema
Im folgenden Beispiel wird der Ereignisklassen-Diagnosebericht für die Flight-Anwendung und die FlightEvents-Ereignisklasse erstellt. In diesem Beispiel befindet sich die gespeicherte Prozedur (wie alle anderen Instanzobjekte) im FlightInstance-Schema gemäß Definition im SchemaName-Element der ICF.
Für den Bericht werden Standardwerte verwendet, die angeben, dass Daten für die letzten fünf Generatorquanten angezeigt werden.
EXEC FlightInstance.NSDiagnosticEventClass
@ApplicationName = N'Flight',
@EventClassName = N'FlightEvents';
Siehe auch
Verweis
Gespeicherte Prozeduren in Notification Services (Transact-SQL)
Andere Ressourcen
Notification Services-Leistungsberichte
SchemaName Element (ICF)