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.
Identificare gli eventi da includere nella traccia.
Identificare i dati e le colonne di dati contenenti le informazioni necessarie.
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_adddistpublisher (Transact-SQL)
sp_adddistributiondb (Transact-SQL)
sp_adddistributor (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (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_helpsubscription_properties (Transact-SQL)