Filtrer une trace

Les filtres limitent les événements recueillis dans une trace. Si aucun filtre n'est défini, tous les événements des classes d'événements sélectionnées sont retournés dans le résultat de trace. Par exemple, limiter les noms d'utilisateurs Windows d'une trace à des utilisateurs particuliers réduit le volume des données de sortie à ces seuls utilisateurs.

Il n'est pas obligatoire de définir un filtre pour une trace. Cependant, un filtre minimise la charge générée au cours d'une trace. Un filtre retourne des données ciblées et permet ainsi de faciliter les analyses de performance et les audits.

Pour filtrer les données relatives aux événements capturés au sein d'une trace, sélectionnez les critères d'événements de trace qui ne retournent que des données pertinentes à partir de la trace. Ainsi, vous pouvez inclure ou exclure de la trace l'analyse de l'activité d'une application particulière.

[!REMARQUE]

Lorsque le SQL Server Profiler crée des traces, il exclut sa propre activité par défaut.

À titre d'exemple supplémentaire, lorsque vous surveillez des requêtes pour déterminer les traitements les plus longs à exécuter, vous pouvez définir les critères d'événements de trace pour surveiller (analyser) uniquement les traitements dont l'exécution prend plus de 30 secondes (valeur minimale de l'UC de 30 000 millisecondes).

Instructions de création de filtres

En général, suivez ces étapes pour filtrer une trace.

  1. Identifiez les événements que vous voulez inclure dans la trace.

  2. Identifiez les données et les colonnes des données qui contiennent les informations dont vous avez besoin.

  3. Identifiez un sous-ensemble des données dont vous avez besoin et définissez des filtres en fonction de ce sous-ensemble.

Par exemple, vous pouvez être intéressé uniquement par les événements qui durent plus longtemps qu'une certaine période de temps. Vous pouvez créer une trace qui inclut les événements pour lesquels les données de la colonne Durée sont supérieures à 300 millisecondes. Votre trace n'inclura pas les événements qui se terminent en moins de 300 millisecondes.

Vous pouvez créer des filtres en utilisant le Générateur de profils SQL Server Profiler ou des procédures stockées Transact-SQL.

Pour filtrer des événements dans un modèle de trace

Filtrer des événements dans une trace (SQL Server Profiler)

Définir un filtre de trace (Transact-SQL)

Pour modifier des filtres

Modifier un filtre (SQL Server Profiler)

La disponibilité du filtre dépend de la colonne de données. Certaines colonnes de données ne peuvent être filtrées. Les colonnes de données qui peuvent être filtrées ne peuvent l'être qu'en fonction de certains opérateurs relationnels, comme spécifié dans le tableau suivant.

Opérateur relationnel

Symbole opérateur

Description

Correspond à

LIKE

Indique que les données d'événements de trace doivent correspondre au texte entré. Autorise plusieurs valeurs.

Ne correspond pas à

NOT LIKE

Indique que les données d'événements de trace ne doivent pas correspondre au texte entré. Autorise plusieurs valeurs.

Égal à

=

Indique que les données d'événements de trace doivent être égales à la valeur entrée. Autorise plusieurs valeurs.

Différent de

<>

Indique que les données d'événements de trace ne doivent pas être égales à la valeur entrée. Autorise plusieurs valeurs.

Supérieur à

>

Indique que les données d'événements de trace doivent être supérieures à la valeur entrée.

Supérieur ou égal à

>=

Indique que les données d'événements de trace doivent être supérieures ou égales à la valeur entrée.

Inférieur à

<

Indique que les données d'événements de trace doivent être inférieures à la valeur entrée.

Inférieur ou égal à

<=

Indique que les données d'événements de trace doivent être inférieures ou égales à la valeur entrée.

Le tableau suivant liste les colonnes de données filtrables, ainsi que les opérateurs relationnels disponibles.

Colonne de données

Opérateurs relationnels

ApplicationName

LIKE, NOT LIKE

BigintData1

=, <>, >=, <=

BigintData2

=, <>, >=, <=

BinaryData

Utilisez le SQL Server Profiler pour filtrer les événements de cette colonne de données. Pour plus d'informations, consultez Filtrer des traces avec SQL Server Profiler.

ClientProcessID

=, <>, >=, <=

ColumnPermissions

=, <>, >=, <=

UC

=, <>, >=, <=

DatabaseID

=, <>, >=, <=

DatabaseName

LIKE, NOT LIKE

DBUserName

LIKE, NOT LIKE

Durée

=, <>, >=, <=

EndTime

>=, <=

Erreur

=, <>, >=, <=

EventSubClass

=, <>, >=, <=

FileName

LIKE, NOT LIKE

GUID

Utilisez le SQL Server Profiler pour filtrer les événements de cette colonne de données. Pour plus d'informations, consultez Filtrer des traces avec SQL Server Profiler.

Handle

=, <>, >=, <=

HostName

LIKE, NOT LIKE

IndexID

=, <>, >=, <=

IntegerData

=, <>, >=, <=

IntegerData2

=, <>, >=, <=

IsSystem

=, <>, >=, <=

LineNumber

=, <>, >=, <=

LinkedServerName

LIKE, NOT LIKE

LoginName

LIKE, NOT LIKE

LoginSid

Utilisez le SQL Server Profiler pour filtrer les événements de cette colonne de données. Pour plus d'informations, consultez Filtrer des traces avec 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

Autorisations

=, <>, >=, <=

ProviderName

LIKE, NOT LIKE

Reads

=, <>, >=, <=

RequestID

=, <>, >=, <=

RoleName

LIKE, NOT LIKE

RowCounts

=, <>, >=, <=

SessionLoginName

LIKE, NOT LIKE

Severity

=, <>, >=, <=

SourceDatabaseID

=, <>, >=, <=

SPID

=, <>, >=, <=

SqlHandle

Utilisez le SQL Server Profiler pour filtrer les événements de cette colonne de données. Pour plus d'informations, consultez Filtrer des traces avec SQL Server Profiler.

StartTime

>=, <=

État

=, <>, >=, <=

Opération réussie

=, <>, >=, <=

TargetLoginName

LIKE, NOT LIKE

TargetLoginSid

Utilisez le SQL Server Profiler pour filtrer les événements de cette colonne de données. Pour plus d'informations, consultez Filtrer des traces avec SQL Server Profiler.

TargetUserName

LIKE, NOT LIKE

TextData 1

LIKE, NOT LIKE

TransactionID

=, <>, >=, <=

Type

=, <>, >=, <=

Writes

=, <>, >=, <=

XactSequence

=, <>, >=, <=

1 Si le traçage des événements est réalisé avec l'utilitaire osql ou l'utilitaire sqlcmd, il faut toujours ajouter % aux filtres de la colonne de données TextData.

En tant que mécanisme de sécurité, le Générateur de profils SQL omet automatiquement de la trace les procédures stockées de sécurité qui affectent les mots de passe. Ce mécanisme de sécurité n'est pas configurable et est toujours actif. Il empêche les utilisateurs, qui par ailleurs ont l'autorisation de tracer l'ensemble de l'activité de SQL Server, d'intercepter les mots de passe.

Les procédures stockées de sécurité suivantes sont surveillées, mais aucune donnée de sortie n'est écrite dans la colonne de données TextData :

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)