Filtrare una traccia

Si applica a:SQL Server

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

Filtrare eventi in una traccia (SQL Server Profiler)

Impostare un filtro di traccia (Transact-SQL)

Per modificare i filtri

Modificare 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
Like LIKE Consente di specificare che i dati dell'evento di traccia devono essere simili al testo specificato. Supporta più valori.
Non simile a Non simile a Specifica che i dati dell'evento di traccia devono essere diversi dal testo specificato. Supporta più valori.
Uguale a = Specifica che i dati dell'evento di traccia devono essere uguali al valore specificato. Supporta più valori.
Diverso da <> Specifica che i dati dell'evento di traccia devono essere diversi dal valore specificato. Supporta più valori.
Maggiore di > Specifica che i dati dell'evento di traccia devono essere maggiori del valore specificato.
Maggiore di 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 di 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 altre informazioni, vedere Filtrare le tracce tramite SQL Server Profiler.
ClientProcessID =, <>, >=, <=
ColumnPermissions =, <>, >=, <=
CPU =, <>, >=, <=
DatabaseID =, <>, >=, <=
DatabaseName LIKE, NOT LIKE
DBUserName LIKE, NOT LIKE
Durata =, <>, >=, <=
EndTime >=, <=
Errore =, <>, >=, <=
EventSubClass =, <>, >=, <=
FileName LIKE, NOT LIKE
GUID Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per altre informazioni, vedere Filtrare le 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 altre informazioni, vedere Filtrare le tracce tramite SQL Server Profiler.
MethodName LIKE, NOT LIKE
Modalità =, <>, >=, <=
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
Autorizzazioni =, <>, >=, <=
ProviderName LIKE, NOT LIKE
Reads =, <>, >=, <=
RequestID =, <>, >=, <=
RoleName LIKE, NOT LIKE
RowCounts =, <>, >=, <=
SessionLoginName LIKE, NOT LIKE
Gravità =, <>, >=, <=
SourceDatabaseID =, <>, >=, <=
SPID =, <>, >=, <=
SqlHandle Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per altre informazioni, vedere Filtrare le tracce tramite SQL Server Profiler.
StartTime >=, <=
Stato =, <>, >=, <=
Success =, <>, >=, <=
TargetLoginName LIKE, NOT LIKE
TargetLoginSid Utilizzare SQL Server Profiler per filtrare gli eventi in questa colonna di dati. Per altre informazioni, vedere Filtrare le tracce tramite SQL Server Profiler.
TargetUserName LIKE, NOT LIKE
TextData * LIKE, NOT LIKE
TransactionID =, <>, >=, <=
Type =, <>, >=, <=
Writes =, <>, >=, <=
XactSequence =, <>, >=, <=

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

A titolo di sicurezza, Traccia SQL omette automaticamente dalla traccia le informazioni sulle stored procedure correlate alla sicurezza che coinvolgono le password. Tale meccanismo di sicurezza 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 sicurezza 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)