Filtraggio di una traccia

I filtri consentono di limitare gli eventi raccolti in una traccia. Se non si imposta un filtro, tutti gli eventi delle classi di evento selezionate vengono restituiti nell'output di traccia. Ad esempio, se si limitano i nomi utente di Windows in una traccia, consentendo solo utenti specifici, i dati dell'output saranno ridotti solo a tali utenti.

L'impostazione di un filtro per una traccia non è obbligatoria. Un filtro consente, tuttavia, di ridurre l'overhead che si verifica durante una traccia, restituendo dati specifici e quindi semplificando l'analisi delle prestazioni e i controlli.

Per filtrare i dati di evento acquisiti in una traccia, selezionare i criteri per gli eventi di traccia che restituiscono solo i dati rilevanti disponibili nella traccia. Ad esempio, è possibile includere o escludere il monitoraggio dell'attività di un'applicazione specifica dalla traccia.

[!NOTA] Durante la creazione di tracce da parte di SQL Server Profiler, per impostazione predefinita le attività specifiche del programma stesso vengono escluse tramite filtro.

Come ulteriore esempio, se si esegue il monitoraggio delle query per determinare quali batch richiedono i tempi di esecuzione più lunghi, impostare i criteri per gli eventi di traccia in modo da monitorare solo i batch la cui esecuzione richiede più di 30 secondi (un valore minimo della CPU di 30.000 millisecondi).

Linee guida per la creazione di filtri

In generale, per filtrare una traccia, eseguire la procedura seguente.

  1. Identificare gli eventi da includere nella traccia.
  2. Identificare i dati e le colonne di dati contenenti le informazioni necessarie.
  3. Identificare un subset dei dati necessari e definire filtri in base a tale subset di dati.

Ad esempio, è possibile che si desideri filtrare solo gli eventi con durata superiore a un determinato intervallo. In tal caso, è possibile creare una traccia che include gli eventi per i quali il valore nella colonna Duration è maggiore di 300 millisecondi. Nella traccia non saranno inclusi gli eventi con durata inferiore a 300 millisecondi.

È possibile creare filtri tramite SQL Server Profiler o le stored procedure Transact-SQL.

Per filtrare gli eventi di un modello di traccia

Procedura: Filtraggio di eventi in una traccia (SQL Server Profiler)

Procedura: Impostazione di un filtro di traccia (Transact-SQL)

Per modificare i filtri

Procedura: Modifica di un filtro (SQL Server Profiler)

La disponibilità dei filtri dipende dalla colonna di dati. Non è possibile filtrare alcune colonne di dati. Le colonne di dati che possono essere filtrate consentono solo determinati operatori relazionali, come illustrato nella tabella seguente.

Operatore relazionale Simbolo operatore Descrizione

Simile a

LIKE

Specifica che i dati dell'evento di traccia devono essere simili al testo specificato. Supporta valori multipli.

Non simile a

NOT LIKE

Specifica che i dati dell'evento di traccia devono essere diversi dal testo specificato. Supporta valori multipli.

Uguale a

=

Specifica che i dati dell'evento di traccia devono essere uguali al valore specificato. Supporta valori multipli.

Diverso da

<>

Specifica che i dati dell'evento di traccia devono essere diversi dal valore specificato. Supporta valori multipli.

Maggiore di

>

Specifica che i dati dell'evento di traccia devono essere maggiori del valore specificato.

Maggiore o uguale a

>=

Specifica che i dati dell'evento di traccia devono essere maggiori o uguali al valore specificato.

Minore di

<

Specifica che i dati dell'evento di traccia devono essere minori del valore specificato.

Minore o uguale a

<=

Specifica che i dati dell'evento di traccia devono essere minori o uguali al valore specificato.

Nella tabella seguente sono elencate le colonne di dati a cui è possibile applicare un filtro e gli operatori relazionali disponibili.

Colonne di dati Operatori relazionali

ApplicationName

LIKE, NOT LIKE

BigintData1

=, <>, >=, <=

BigintData2

=, <>, >=, <=

BinaryData

Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per ulteriori informazioni, vedere Filtro di tracce tramite SQL Server Profiler.

ClientProcessID

=, <>, >=, <=

ColumnPermissions

=, <>, >=, <=

CPU

=, <>, >=, <=

DatabaseID

=, <>, >=, <=

DatabaseName

LIKE, NOT LIKE

DBUserName

LIKE, NOT LIKE

Duration

=, <>, >=, <=

EndTime

>=, <=

Error

=, <>, >=, <=

EventSubClass

=, <>, >=, <=

FileName

LIKE, NOT LIKE

GUID

Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per ulteriori informazioni, vedere Filtro di tracce tramite SQL Server Profiler.

Handle

=, <>, >=, <=

HostName

LIKE, NOT LIKE

IndexID

=, <>, >=, <=

IntegerData

=, <>, >=, <=

IntegerData2

=, <>, >=, <=

IsSystem

=, <>, >=, <=

LineNumber

=, <>, >=, <=

LinkedServerName

LIKE, NOT LIKE

LoginName

LIKE, NOT LIKE

LoginSid

Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per ulteriori informazioni, vedere Filtro di tracce tramite SQL Server Profiler.

MethodName

LIKE, NOT LIKE

Mode

=, <>, >=, <=

NestLevel

=, <>, >=, <=

NTDomainName

LIKE, NOT LIKE

NTUserName

LIKE, NOT LIKE

ObjectID

=, <>, >=, <=

ObjectID2

=, <>, >=, <=

ObjectName

LIKE, NOT LIKE

ObjectType

=, <>, >=, <=

Offset

=, <>, >=, <=

OwnerID

=, <>, >=, <=

OwnerName

LIKE, NOT LIKE

ParentName

LIKE, NOT LIKE

Permissions

=, <>, >=, <=

ProviderName

LIKE, NOT LIKE

Reads

=, <>, >=, <=

RequestID

=, <>, >=, <=

RoleName

LIKE, NOT LIKE

RowCounts

=, <>, >=, <=

SessionLoginName

LIKE, NOT LIKE

Severity

=, <>, >=, <=

SourceDatabaseID

=, <>, >=, <=

SPID

=, <>, >=, <=

SqlHandle

Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per ulteriori informazioni, vedere Filtro di tracce tramite SQL Server Profiler.

StartTime

>=, <=

State

=, <>, >=, <=

Success

=, <>, >=, <=

TargetLoginName

LIKE, NOT LIKE

TargetLoginSid

Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per ulteriori informazioni, vedere Filtro di tracce tramite SQL Server Profiler.

TargetUserName

LIKE, NOT LIKE

TextData1

LIKE, NOT LIKE

TransactionID

=, <>, >=, <=

Type

=, <>, >=, <=

Writes

=, <>, >=, <=

XactSequence

=, <>, >=, <=

1 Se si tracciano eventi dall'utilità osql o dall'utilità sqlcmd, aggiungere sempre % ai filtri nella colonna di dati TextData.

A titolo di protezione, Traccia SQL omette automaticamente dalla traccia le informazioni sulle stored procedure correlate alla protezione che coinvolgono le password. Tale meccanismo di protezione non è configurabile ed è sempre attivo. In tale modo viene impedito che le password possano essere acquisite dagli utenti, i quali sono autorizzati a tenere traccia di tutte le attività in SQL Server.

Le stored procedure seguenti correlate alla protezione vengono monitorate, ma nella colonna di dati TextData non viene scritto alcun output:

sp_addapprole (Transact-SQL)

sp_adddistpublisher (Transact-SQL)

sp_adddistributiondb (Transact-SQL)

sp_adddistributor (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_addmergepullsubscription_agent (Transact-SQL)

sp_addpullsubscription_agent (Transact-SQL)

sp_addremotelogin (Transact-SQL)

sp_addsubscriber (Transact-SQL)

sp_approlepassword (Transact-SQL)

sp_changedistpublisher (Transact-SQL)

sp_changesubscriber (Transact-SQL)

sp_dsninfo (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

sp_link_publication (Transact-SQL)

sp_password (Transact-SQL)

sp_setapprole (Transact-SQL)

Vedere anche

Concetti

Descrizione degli eventi mediante le colonne di dati

Guida in linea e informazioni

Assistenza su SQL Server 2005