Indicateurs de trace (Transact-SQL)

Les indicateurs de trace permettent de définir temporairement des caractéristiques de serveur spécifiques ou de désactiver un comportement particulier. Par exemple, si l'indicateur de trace 3205 est défini au démarrage d'une instance de SQL Server, la compression matérielle des lecteurs de bandes est désactivée. Les indicateurs de trace servent le plus souvent à diagnostiquer des problèmes de performances et à déboguer des procédures stockées ou des systèmes informatiques complexes.

Le tableau ci-dessous répertorie et décrit les indicateurs de trace disponibles dans SQL Server.

[!REMARQUE]

Il est possible que le comportement des indicateurs de trace ne soit pas pris en charge dans les prochaines versions de SQL Server.

Indicateur de trace

Description

260

Imprime les informations de version relatives aux bibliothèques de liaison dynamique (DLL) des procédures stockées étendues. Pour plus d'informations sur __GetXpVersion(), consultez Création de procédures stockées étendues.

Portée : global ou session

1204

Retourne les ressources et les types de verrous participant à l'interblocage, ainsi que la commande active affectée.

Portée : global uniquement

1211

Désactive l'escalade de verrous en fonction de la sollicitation de la mémoire ou du nombre de verrous. Le Moteur de base de données SQL Server ne promeut aucun verrou de ligne ou de page au rang de verrou de table.

L'utilisation de cet indicateur de trace peut générer un nombre excessif de verrous. Ceci peut entraîner un ralentissement des performances du Moteur de base de données ou provoquer des erreurs de type 1204 (impossible d'allouer la ressource du verrou) pour cause de mémoire insuffisante.

Si les deux indicateurs de trace 1211 et 1224 sont définis, 1211 est prioritaire sur 1224. Toutefois, comme l'indicateur de trace 1211 empêche l'escalade dans chaque cas, même si la mémoire est sollicitée, nous vous recommandons d'utiliser 1224. Cela permet d'éviter les erreurs liées au manque de verrous, lorsque de nombreux verrous sont utilisés.

Portée : global ou session

1222

Retourne les ressources et les types de verrous participant au blocage et la commande active affectée, au format XML n'ayant à être validé par aucun schéma XSD particulier.

Portée : global uniquement

1224

Désactive l'escalade de verrous en fonction du nombre de verrous. Cependant, une sollicitation de la mémoire peut toujours activer l'escalade de verrous. Le Moteur de base de données promeut les verrous de ligne ou de page au rang de verrous de table (ou de partition) si l'une des conditions suivantes n'est pas respectée :

  • Quarante pour cent de la mémoire utilisée par le Moteur de base de données. Ceci s'applique uniquement lorsque le paramètre locks de sp_configure est défini à 0 ;

  • si la quantité de mémoire utilisée par les objets des verrous excède 40 % de la mémoire de verrous configurée à l'aide du paramètre locks de sp_configure. Pour plus d'informations, consultez Options de configuration de serveur.

Si les deux indicateurs de trace 1211 et 1224 sont définis, 1211 est prioritaire sur 1224. Toutefois, comme l'indicateur de trace 1211 empêche l'escalade dans chaque cas, même si la mémoire est sollicitée, nous vous recommandons d'utiliser 1224. Cela permet d'éviter les erreurs liées au manque de verrous, lorsque de nombreux verrous sont utilisés.

[!REMARQUE]

L'escalade de verrous jusqu'à la granularité de niveau table ou HoBT peut également être contrôlée en utilisant l'option LOCK_ESCALATION de l'instruction ALTER TABLE.

Portée : global ou session

1448

Permet à l'agent de lecture du journal de réplication d'avancer même si les éléments secondaires asynchrones n'ont pas accusé réception d'une modification. Même si cet indicateur de trace a activé l'agent de lecture de journal, attendez toujours les éléments secondaires synchrones. L'agent de lecture du journal n'ira pas au delà de l'accusé réception minimum des éléments secondaires synchrones. Cet indicateur de trace s'applique à l'instance de SQL Server, et pas simplement à un groupe de disponibilité, à une base de données de disponibilité ou à une instance de l'agent de lecture de journal. Prend effet immédiatement, sans redémarrage. Cet indicateur de trace peut être activé d'avance ou lorsque l'élément secondaire asynchrone échoue.

2528

Désactive la vérification parallèle des objets par DBCC CHECKDB, DBCC CHECKFILEGROUP et DBCC CHECKTABLE. Par défaut, le degré de parallélisme est déterminé automatiquement par le processeur de requête. Le degré maximum de parallélisme est configuré de la même manière que celui des requêtes parallèles. Pour plus d'informations, consultez Configurer l'option de configuration du serveur Degré maximal de parallélisme.

La vérification DBCC parallèle doit généralement rester désactivée. Dans le cas de DBCC CHECKDB, le processeur de requête réévalue et ajuste automatiquement le parallélisme entre chaque table ou traitement de tables vérifiées. Il se peut parfois que la vérification commence lorsque le serveur est quasiment inactif. Un administrateur sachant que la charge doit augmenter avant la fin de la vérification peut réduire ou désactiver manuellement le parallélisme.

Lorsque la vérification parallèle de DBCC est désactivée, celui-ci peut mettre beaucoup plus de temps à s’exécuter. En outre, s’il est exécuté alors que la fonctionnalité TABLOCK est activée et que le parallélisme est désactivé, les tables peuvent être verrouillées pour des durées plus longues.

Portée : global ou session

3042

Contourne l'algorithme de préallocation de compression de sauvegarde par défaut pour permettre au fichier de sauvegarde de croître autant que nécessaire uniquement afin d'atteindre sa taille définitive. Cet indicateur de trace est utile si vous devez économiser de l'espace en allouant uniquement la taille réelle requise pour la sauvegarde compressée. L'utilisation de cet indicateur de trace peut diminuer légèrement les performances (augmentation possible de la durée de l'opération de sauvegarde).

Pour plus d'informations sur l'algorithme de préallocation, consultez Compression de sauvegardes (SQL Server).

3205

Par défaut, si une unité sur bande gère la compression matérielle, l'instruction DUMP ou BACKUP en fera usage. Cet indicateur de trace permet de désactiver la compression matérielle pour les unités de sauvegarde sur bande. Cette option peut s'avérer utile lorsque vous souhaitez échanger des bandes avec d'autres sites ou les utiliser avec des unités qui ne gèrent pas la compression.

Portée : global ou session

3226

Par défaut, chaque opération de sauvegarde réussie ajoute une entrée dans le journal des erreurs SQL Server et dans le journal des événements système. Si vous créez de fréquentes sauvegardes du fichier journal, ces messages de réussite peuvent rapidement s'accumuler, créer des journaux d'erreurs très volumineux et compliquer la recherche d'autres messages.

Avec cet indicateur de trace, vous pouvez supprimer ces entrées de journal. L'activation de cet indicateur de trace est utile si vous exécutez des sauvegardes de fichiers journaux fréquentes et si aucun de vos scripts ne dépend de ces entrées.

3608

Empêche SQL Server de démarrer automatiquement et de récupérer des bases de données, sauf la base de données MASTER. Si des activités qui nécessitent tempdb sont lancées, alors model est récupéré et tempdb est créé. Les bases de données utilisateur ne sont démarrées et récupérées qu'en cas d'accès. Certaines fonctionnalités, telles que le niveau d'isolement d'instantané et l'instantané Read Committed, peuvent ne pas fonctionner. S'utilise pour Déplacer des bases de données système et Déplacer des bases de données utilisateur. Ne pas utiliser au cours du fonctionnement normal.

3625

Limite la quantité d'informations retournée aux utilisateurs qui ne sont pas membres du rôle serveur fixe de sysadmin, en masquant les paramètres de certains messages d'erreur à l'aide de « ****** ». Cela peut permettre d'éviter la divulgation d'informations sensibles.

Portée : global uniquement

4199

Contrôle plusieurs modifications de l'optimiseur de requête, précédemment effectuées sous plusieurs indicateurs de trace. Pour plus d’informations, consultez cet article du support technique Microsoft.

Portée : global ou session

4616

Permet aux rôles d'application d'accéder aux métadonnées au niveau du serveur. Dans SQL Server, un rôle d'application ne peut pas accéder à des métadonnées situées en dehors de sa propre base de données car les rôles d'application ne sont pas associés à un principal au niveau serveur. Il s'agit là d'une différence par rapport aux versions antérieures de SQL Server. La définition de cet indicateur global désactive les nouvelles restrictions et permet aux rôles d'application d'accéder aux métadonnées au niveau du serveur.

Portée : global uniquement

6527

Désactive la génération d'un vidage de la mémoire sur la première occurrence d'une exception mémoire insuffisante dans l'intégration du CLR. Par défaut,SQL Server génère un petit vidage de la mémoire sur la première occurrence d'une exception mémoire insuffisante dans le CLR. Le comportement de l'indicateur de trace est comme suit :

  • Si cela est utilisé comme indicateur de trace de démarrage, un vidage de mémoire n'est jamais généré. Toutefois, un vidage de la mémoire peut être généré si d'autres indicateurs de trace sont utilisés.

  • Si cet indicateur de trace est activé sur un serveur en exécution, un vidage de la mémoire ne sera pas généré automatiquement à partir de ce point. Toutefois, si un vidage de la mémoire a déjà été généré en raison d'une exception mémoire insuffisante dans le CLR, cet indicateur de trace n'aura aucun effet.

Portée : global uniquement

7806

Active une connexion administrateur dédiée (DAC) sur SQL Server Express. Par défaut, aucune ressource DAC n'est réservée sur SQL Server Express. Pour plus d'informations, consultez Connexion de diagnostic pour les administrateurs de base de données.

Portée : global uniquement

8032

Rétablit les paramètres de limitation du cache au paramètre RTM SQL Server 2005 qui permet en général aux caches d'être plus volumineux. Utilisez ce paramètre lorsque les entrées du cache fréquemment utilisées ne tiennent pas dans le cache et lorsque l'Optimiser pour les charges de travail ad hoc (option de configuration de serveur) ne permet pas de résoudre le problème avec le cache du plan.

AttentionAttention

L'indicateur de trace 8 032 peut altérer les performances si des caches volumineux diminuent la mémoire disponible pour les autres consommateurs, tels que le pool de mémoires tampons.

8207

Active les mises à jour singleton pour la réplication transactionnelle. Les mises à jour des abonnés peuvent être répliquées en une paire DELETE et une paire INSERT. Il est possible que cela ne réponde pas aux règles d'entreprise, par exemple, le déclenchement d'un déclencheur UPDATE. Avec l'indicateur de trace 8207, une mise à jour d'une colonne unique qui modifie une seule ligne (une mise à jour singleton) est répliquée en tant que paire UPDATE et non en tant que paire DELETE ou INSERT. Si la mise à jour concerne une colonne qui a une contrainte unique ou si la mise à jour concerne plusieurs lignes, elle sera toujours répliquée en tant que paire DELETE ou INSERT.

9485

Désactive les autorisations SELECT pour DBCC SHOW_STATISTICS.

Notes

Dans SQL Server, il existe deux types d'indicateurs de trace : les indicateurs de trace de session et les indicateurs de trace globaux. Les indicateurs de trace de session sont actifs pour une connexion et visibles uniquement pour celle-ci. Les indicateurs de trace globaux sont définis au niveau du serveur et sont visibles pour chaque connexion sur celui-ci. Certains indicateurs ne peuvent être activés qu'en tant qu'indicateurs globaux, tandis que d'autres peuvent être activés avec une étendue globale ou de session.

Les règles suivantes s'appliquent :

  • Un indicateur de trace global doit être activé globalement. Sinon, il est sans effet. Il est recommandé d'activer les indicateurs de trace globaux au démarrage, à l'aide de l'option de ligne de commande -T.

  • Si un indicateur de trace possède une étendue globale ou de session, il peut être activé avec l'étendue appropriée. Un indicateur de trace activé au niveau session n'affecte jamais une autre session et l'effet de l'indicateur de trace est perdu lorsque le SPID qui a ouvert la session se déconnecte.

Les indicateurs de trace s'activent ou se désactivent de l'une des façons suivantes :

  • en utilisant les commandes DBCC TRACEON et DBCC TRACEOFF ;

    Par exemple, DBCC TRACEON 2528: Pour activer l'indicateur de trace globalement, utilisez DBCC TRACEON avec l'argument -1 : DBCC TRACEON (2528, -1). Pour désactiver un indicateur de trace global, utilisez DBCC TRACEOFF avec l'argument -1.

  • en utilisant l'option de démarrage -T pour indiquer que l'indicateur de trace doit être défini au démarrage.

    L'option de démarrage -T active un indicateur de trace globalement. Vous ne pouvez pas activer un indicateur de trace de niveau session à l'aide d'une option de démarrage. Pour plus d'informations sur les options de démarrage, consultez Options de démarrage du service moteur de base de données.

Utilisez la commande DBCC TRACESTATUS afin de déterminer quels indicateurs de trace sont actuellement actifs.

Exemples

L'exemple suivant active l'indicateur de trace 3205 par le biais de DBCC TRACEON.

DBCC TRACEON (3205,-1)

Voir aussi

Référence

Types de données (Transact-SQL)

DBCC INPUTBUFFER (Transact-SQL)

DBCC OUTPUTBUFFER (Transact-SQL)

DBCC TRACEOFF (Transact-SQL)

DBCC TRACEON (Transact-SQL)

DBCC TRACESTATUS (Transact-SQL)

EXECUTE (Transact-SQL)

SELECT (Transact-SQL)

SET NOCOUNT (Transact-SQL)