Share via


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)

Hilfe und Informationen

Informationsquellen für SQL Server 2005