Condividi tramite


NSDiagnosticEventClass (Transact-SQL)

Crea un report relativo alla classe di evento per un'applicazione di Microsoft SQL Server Notification Services. Questo report è utile per risolvere i problemi relativi alla raccolta degli eventi e fornire informazioni sull'elaborazione degli eventi da parte dell'applicazione.

Sintassi

[ schema_name . ] NSDiagnosticEventClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @EventClassName = ] 'event_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

Argomenti

[ @ApplicationName = ] 'app_name'

Nome di un'applicazione definito nel file di configurazione. app_name è di tipo nvarchar(255) e non prevede alcun valore predefinito.

[ @EventClassName = ] 'event_class_name'

Nome di una classe di evento nell'applicazione. event_class_name è di tipo nvarchar(255) e non prevede alcun valore predefinito.

[ @ReportingInterval = ] interval

Numero di quantum del generatore per ogni intervallo di report. Il report contiene una riga per intervallo. interval è di tipo int e il valore predefinito è 1, che indica un quantum del generatore per intervallo.

La durata del quantum viene definita nel file di definizione dell'applicazione (ADF).

[ @StartDateTime = ] 'start_date_time'

Data e ora UTC (Coordinated Universal Time o ora di Greenwich) di inizio del report. start_date_time è di tipo datetime. Il valore predefinito è @EndDateTime - (5 * QuantumDuration * @ReportingInterval). Utilizzando il valore predefinito, il set dei risultati contiene al massimo cinque righe, ognuna delle quali rappresenta un intervallo di report.

[ @EndDateTime = ] 'end_date_time'

Data e ora UTC di fine del report. end_date_time è di tipo datetime. Il valore predefinito è l'ora UTC in cui viene richiamata la stored procedure.

Set di risultati

Nome colonna Tipo di dati Descrizione

IntervalStartDateTime

datetime

Data e ora UTC di inizio per l'intervallo di report.

IntervalEndDateTime

datetime

Data e ora UTC di fine per l'intervallo di report.

EventBatchesCollectedCount

int

Numero di batch di eventi raccolti durante l'intervallo di report. Vengono contati solo i batch per cui è stato completato il processo di raccolta.

UnfinishedEventBatches

int

Numero di batch di eventi avviati, ma non completati, durante l'intervallo di report.

AvgEventBatchEventCount

float

Per i batch di eventi raccolti durante l'intervallo di report, il numero medio di eventi per batch.

AvgEventsCollectedPerSecond

float

Per i batch di eventi raccolti durante l'intervallo di report, il numero medio di eventi raccolti al secondo.

AvgGeneratorPickupWaitPerBatch

float

Per i batch di eventi raccolti durante l'intervallo di report, il numero medio di secondi impiegato dal generatore per elaborare il batch di eventi (eseguendo una regola di cronologia eventi o una regola di sottoscrizione eventi).

AvgEventChronicleRuleFiringTimePerBatch

float

Per i batch di eventi raccolti durante l'intervallo di report, è il tempo medio, in secondi, impiegato per l'esecuzione delle regole di cronologia eventi.

AvgEventSubscriptionRuleFiringTimePerBatch

float

Per i batch di eventi raccolti durante l'intervallo di report, è il tempo medio, in secondi, impiegato per l'esecuzione delle regole di sottoscrizione eventi.

EventNotificationBatchCount

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di batch di notifiche generati.

EventNotificationsGeneratedCount

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di notifiche generate.

AvgEventNotificationBatchGenerationTime

float

Per i batch di eventi raccolti durante l'intervallo di report, è il tempo medio, in secondi, impiegato per la creazione dei batch di notifiche.

AvgEventNotificationBatchWaitTillDistribution

float

Per i batch di eventi raccolti durante l'intervallo di report, è il tempo medio, in secondi, di attesa per l'elaborazione dei batch delle notifiche da parte del server di distribuzione.

EventNotificationDeliveryAttempts

int

Numero di tentativi di recapito delle notifiche create dagli eventi raccolti durante l'intervallo di report.

EventNotificationSuccessfulDeliveries

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di recapiti di notifiche eseguiti senza errori.

EventNotificationFailedAttempts

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di tentativi di recapito delle notifiche non riusciti.

EventNotificationsDeliveryNotAttempted

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di notifiche che il server di distribuzione non ha ancora cercato di recapitare.

EventNotificationsNotYetDelivered

int

Per i batch di eventi raccolti durante l'intervallo di report, è il numero di notifiche non ancora recapitate perché non è stato effettuato alcun tentativo di recapito o perché si sono verificati problemi durante il tentativo.

EventNotificationToMessageRatio

float

Per i batch di eventi raccolti durante l'intervallo di report, è il rapporto tra le notifiche generate e i messaggi inviati.

Per il recapito digest o multicast, è possibile includere più notifiche in un unico messaggio. Questa colonna indica il numero medio di notifiche incluse nei messaggi digest o multicast.

AvgEventNotificationBatchSucceedDeliveryTime

float

Per le notifiche generate dai batch di eventi dell'intervallo, è il tempo medio impiegato per l'invio delle notifiche tramite il processo di distribuzione.

Osservazioni

Notification Services crea la stored procedure NSDiagnosticEventClass nel database dell'istanza quando viene creata l'istanza. Quando si aggiorna l'istanza, Notification Services ricompila la stored procedure.

Questa stored procedure è disponibile nello schema dell'istanza, specificato dall'elemento SchemaName del file di configurazione dell'istanza (ICF). Se non si specifica un nome di schema, viene utilizzato lo schema predefinito dbo.

I batch di notifiche rientrano nell'intervallo di report quando il valore di EndCollectionTime è maggiore del valore di IntervalStartDateTime e minore o uguale al valore di IntervalEndDateTime.

Per stabilire la data e l'ora UTC correnti, eseguire SELECT GETUTCDATE() in SQL Server Management Studio. L'ora UTC corrente viene calcolata in base all'ora locale corrente e all'impostazione del fuso orario del sistema operativo del computer in cui è in esecuzione SQL Server.

Autorizzazioni

Le autorizzazioni di esecuzione vengono assegnate per impostazione predefinita ai membri del ruolo di database NSAnalysis, del ruolo predefinito del database db_owner e del ruolo predefinito del server sysadmin.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

A. Impostazione dell'intervallo di report, dell'ora di inizio e dell'ora di fine

Nell'esempio seguente viene illustrato come creare il report di diagnostica della classe di evento per l'applicazione Flight e la classe di evento FlightNotifications. L'istanza utilizza le impostazioni predefinite del database, che prevedono l'inserimento di tutti gli oggetti dell'istanza nello schema dbo.

Il report include 40 quantum del generatore per ogni intervallo di report. Il report inizia alle 17.00 del 23 maggio 2004 e finisce alle 18.00 dello stesso giorno (ora 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. Utilizzo dei valori predefiniti, schema denominato

Nell'esempio seguente viene illustrato come creare il report di diagnostica della classe di evento per l'applicazione Flight e la classe di evento FlightNotifications. In questo esempio, la stored procedure (come tutti gli altri oggetti dell'istanza) è inclusa nello schema FlightInstance, come specificato nell'elemento SchemaName del file di configurazione dell'istanza (ICF).

Per il report vengono utilizzati i valori predefiniti, che specificano di visualizzare i dati relativi agli ultimi cinque quantum del generatore.

EXEC FlightInstance.NSDiagnosticEventClass
    @ApplicationName = N'Flight',
    @EventClassName = N'FlightEvents';

Vedere anche

Riferimento

Stored procedure di Notification Services (Transact-SQL)

Altre risorse

Report sulle prestazioni di Notification Services
SchemaName Element (ICF)

Guida in linea e informazioni

Assistenza su SQL Server 2005