L’option SASTRACE
L'option système SASTRACE
est intrinsèquement liée à SAS/ACCESS. Sa fonction première est de rendre visible les commandes (requêtes SQL, appels d'API) que SAS envoie aux sources de données externes.
Elle est décrite comme un "outil très puissant" car elle lève le voile sur cette couche de communication, souvent opaque pour le programmeur SAS.
Activation de SASTRACE
Syntaxe d'Activation : L'activation de base se fait via l'instruction OPTIONS
: OPTIONS SASTRACE='paramètre(s)';
. Il est également possible de définir cette option dans les fichiers de configuration SAS ou lors de l'invocation de la session SAS.
Désactivation : Pour arrêter le traçage, on utilise : OPTIONS SASTRACE=OFF;
.
Contrôle de la Destination de la Sortie (SASTRACELOC
) : L'option SASTRACELOC=
est cruciale, en particulier sur les plateformes PC , pour spécifier où les messages de trace générés par SASTRACE=
doivent être écrits. Sans elle, la sortie pourrait être dirigée vers un emplacement par défaut potentiellement inattendu ou difficile d'accès. Les valeurs possibles pour SASTRACELOC=
sont :
stdout
: Écrit les informations de trace vers l'emplacement de sortie par défaut de l'environnement d'exploitation (souvent la console ou le terminal). C'est la valeur par défaut.
SASLOG
: Écrit les informations de trace directement dans le journal SAS standard. C'est une option très courante et pratique, car elle permet d'analyser la trace conjointement avec les messages normaux du journal SAS.
FILE 'chemin-et-nom-fichier'
: Écrit les informations de trace dans un fichier externe spécifié (le chemin et le nom du fichier doivent être entre guillemets). Utile pour isoler une sortie de trace volumineuse ou pour un traitement automatisé ultérieur.
1 |
OPTIONS SASTRACE=',,,d' SASTRACELOC=SASLOG; |
1 |
OPTIONS SASTRACE=',,,d' SASTRACELOC=FILE 'c:\temp\trace_sql.log';<strong>Exemples de Syntaxe :</strong> |
L'option SASTRACE=
utilise une syntaxe positionnelle basée sur des virgules (par exemple, ',,,d'
) qui peut sembler énigmatique au premier abord. Chaque position entre les guillemets simples correspond à un type spécifique d'information à tracer. Il est important de noter que des problèmes de syntaxe peuvent survenir avec les guillemets (simples vs doubles, espaces de début), comme rapporté dans certaines discussions communautaires, nécessitant parfois de retaper manuellement les guillemets après un copier-coller.
Voici une description des paramètres positionnels courants et de leurs fonctions, basée sur la documentation et les exemples pratiques :
,,,d
(Instructions SQL) :
Enregistre toutes les instructions SQL envoyées à la source de données (par exemple, SELECT
, INSERT
, UPDATE
, DELETE
, CREATE
, DROP
, COMMIT
, ROLLBACK
).
Pour les moteurs qui ne génèrent pas de SQL (certains accès à des fichiers PC ou des API spécifiques), enregistre les appels d'API et leurs paramètres.
Cas d'utilisation : Essentiel pour vérifier le SQL généré par les procédures SAS ou les étapes DATA lors de l'utilisation de LIBNAMEs (pass-through SQL implicite), déboguer la traduction des clauses WHERE
, et comprendre les interactions de base avec la base de données.
,,,db
(Instructions SQL Brèves) :
Enregistre une version résumée ou brève des instructions SQL normalement générées par ,,,d
.
Cas d'utilisation : Utile lorsque ,,,d
produit une sortie trop volumineuse, offrant une vue condensée du flux SQL.
,,d,
(Appels de Routines) :
Enregistre tous les appels de routines/API, y compris les entrées et sorties de fonctions, les paramètres pertinents et les codes de retour.
La sortie varie considérablement d'un moteur/source de données à l'autre.
Cas d'utilisation : Principalement pour le dépannage approfondi, souvent à la demande du support technique SAS pour diagnostiquer des problèmes internes complexes.
d,,
(Appels SGBD/API) :
Enregistre les appels détaillés au niveau du SGBD (appels API et client), les informations de connexion, les liaisons de colonnes, les informations d'erreur des colonnes et le traitement des lignes.
La sortie varie également considérablement.
Cas d'utilisation : Similaire à ,,d,
, destiné aux diagnostics approfondis du support technique.
,,,s
(Résumé de Synchronisation) :
Enregistre un résumé des informations de temps (timing) pour les appels effectués vers la source de données/SGBD.
Cas d'utilisation : Analyse de performance – identifier rapidement le temps total passé dans les interactions avec la base de données pour une étape donnée.
,,,sa
(Synchronisation Détaillée + Résumé) :
Enregistre les informations de temps pour chaque appel effectué vers la source de données/SGBD, ainsi qu'un résumé.
Cas d'utilisation : Analyse de performance granulaire – localiser les instructions SQL ou les appels d'API spécifiques qui sont lents au sein d'une étape.
,,t,
(Informations sur le Threading) :
Enregistre les détails sur les lectures/écritures multi-thread (par exemple, en utilisant l'option de jeu de données DBSLICE
), y compris le nombre de threads, le nombre d'observations par thread et les codes de sortie.
Cas d'utilisation : Optimisation des opérations de transfert de données parallèles avec les bases de données qui supportent le threading.
Combinaison de Paramètres : Il est possible de combiner plusieurs paramètres s'ils affectent des positions différentes dans la chaîne (par exemple, SASTRACE=',,t,dsab'
combine le threading t
, le SQL détaillé d
, le résumé de temps s
et le SQL bref db
). Cependant, certains paramètres sont mutuellement exclusifs (par exemple, d,,
ne peut pas être combiné avec d'autres valeurs ).
Tableau 1 : Résumé des Paramètres SASTRACE
Paramètre | Description | Cas d'Utilisation Typique |
---|---|---|
,,,d | Enregistre toutes les instructions SQL envoyées (ou appels API si non-SQL). | Vérifier la génération SQL, déboguer les clauses WHERE, comprendre les interactions de base. |
,,,db | Enregistre une version brève/résumée des instructions SQL. | Obtenir une vue d'ensemble du flux SQL lorsque ,,,d est trop verbeux. |
,,d, | Enregistre tous les appels de routines/API (entrées/sorties, paramètres, codes retour). | Dépannage approfondi, souvent à la demande du support technique SAS. |
d,, | Enregistre les appels SGBD/API détaillés (connexion, liaisons, erreurs, traitement des lignes). | Dépannage approfondi, souvent à la demande du support technique SAS. |
,,,s | Enregistre un résumé des informations de temps pour les appels à la source de données. | Analyse rapide des performances, temps total passé dans la base de données par étape. |
,,,sa | Enregistre les informations de temps pour chaque appel à la source de données, plus un résumé. | Analyse de performance granulaire, identification des appels lents spécifiques. |
,,t, | Enregistre les informations sur les lectures/écritures multi-thread (nombre de threads, obs/thread, etc.). | Optimisation des transferts de données parallèles (par exemple, avec DBSLICE ). |
OFF | Désactive le traçage SASTRACE. | Arrêter la sortie de trace. |