Utiliser le traçage SQL pour une base de données autonome sur une infrastructure Exadata dédiée
Vous pouvez utiliser le traçage SQL avec l'infrastructure Autonomous Database sur une base Exadata dédiée pour vous aider à identifier la source d'une charge de travail de base de données excessive, telle qu'un énoncé SQL à charge élevée dans votre application.
À propos de la trace SQL
Lorsqu'une opération d'application prend plus de temps que prévu, l'obtention d'une trace de tous les énoncés SQL exécutés dans le cadre de cette opération avec des détails tels que le temps passé par cet énoncé SQL dans les phases d'analyse, d'exécution et d'extraction vous aidera à identifier et à résoudre la cause du problème de performance. Pour ce faire, vous pouvez utiliser le traçage SQL sur une base de données Autonomous Database.
- Commencez par configurer la base de données pour enregistrer les fichiers SQL Trace. Pour plus d'informations, voir Configurer le traçage SQL dans la base de données autonome.
- Activez ensuite le traçage SQL. Voir Activer la trace SQL sur Autonomous Database.
Note :
L'activation du traçage SQL peut dégrader les performances de votre application pour la session pendant la collecte de trace. Cet impact sur la performance est attendu en raison de la surcharge liée à la collecte et à l'enregistrement des données de trace. - Pour arrêter la collecte des données de trace SQL, vous devez désactiver la fonction de trace SQL. Voir Désactiver le traçage SQL.
- Lorsque vous désactivez le suivi SQL, les données de suivi collectées pendant l'exécution de la session avec le suivi activé sont écrites dans la vue
SESSION_CLOUD_TRACE
de la session et dans un fichier de suivi du seau, que vous configurez lors de la configuration du suivi SQL. Vous disposez de deux options pour consulter les données de trace :- Voir et analyser les données de trace SQL dans le fichier de suivi enregistré dans le magasin d'objets en nuage. Pour plus d'informations, voir Voir le fichier de suivi enregistré dans le magasin d'objets en nuage pour une base de données autonome.
- Voir et analyser les données de trace SQL enregistrées dans la vue
SESSION_CLOUD_TRACE
. Pour plus d'informations, voir Voir les données de trace dans la vue SESSION_CLOUD_TRACE pour une base de données autonome.
Configurer le traçage SQL dans la base de données autonome
Activer le traçage SQL dans la base de données autonome
Note :
L'activation du traçage SQL peut dégrader les performances de l'application pour la session pendant la collecte. Cet impact sur la performance est attendu en raison de la surcharge liée à la collecte et à l'enregistrement des données de trace.Pour activer le traçage SQL pour une session de base de données, effectuez les opérations suivantes :
Désactiver le traçage SQL
Voir le fichier de suivi enregistré dans le magasin d'objets en nuage pour une base de données autonome
DEFAULT_LOGGING_BUCKET
.
L'outil de trace SQL écrit les données de trace collectées pour la session dans le magasin d'objets en nuage dans le format suivant :
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
Les composants du nom de fichier sont les suivants :
-
default_logging_bucket : Valeur de la propriété de base de données
DEFAULT_LOGGING_BUCKET
. Pour plus d'informations, voir Configurer le traçage SQL dans la base de données autonome. -
clientID
: Identificateur du client. Pour plus d'informations, voir Activer le traçage SQL dans la base de données autonome. -
moduleName
: Nom du module. Pour plus d'informations, voir Activer le traçage SQL dans la base de données autonome. -
numID1
_numID2
: Deux identificateurs fournis par l'outil de trace SQL. Les valeurs numériquesnumID1
etnumID2
distinguent de manière unique chaque nom de fichier de suivi des autres sessions qui utilisent le traçage et créent des fichiers de suivi dans le même seau du stockage d'objets en nuage.Lorsque le service de base de données prend en charge le parallélisme et qu'une session exécute une interrogation parallèle, la fonction de trace SQL peut produire plusieurs fichiers de suivi avec des valeurs
numID1
etnumID2
différentes.
Note :
Lorsque le suivi SQL est activé et désactivé plusieurs fois dans la même session, chaque itération de trace génère un fichier de suivi distinct dans le magasin d'objets Cloud. Pour éviter de remplacer les traces précédentes générées au cours de la session, les fichiers suivants générés respectent la même convention d'attribution de nom et un suffixe numérique est ajouté au nom du fichier de suivi. Ce suffixe numérique commence par le numéro 1 et est incrémenté de 1 pour chaque itération suivante du traçage.Par exemple, voici un exemple de nom de fichier de suivi généré lorsque vous réglez l'identificateur de client à "sql_test"
et le nom de module à "modname"
:
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
Vous pouvez exécuter TKPROF
pour traduire le fichier de suivi en un fichier de sortie lisible.
Voir les données de trace dans la vue SESSION_CLOUD_TRACE pour une base de données autonome
SESSION_CLOUD_TRACE
de la session où le traçage a été activé.
SESSION_CLOUD_TRACE
. La vue SESSION_CLOUD_TRACE
comprend deux colonnes : ROW_NUMBER
et TRACE
.DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
ROW_NUMBER
indique l'ordre des données de trace situées dans la colonne TRACE
. Chaque ligne de sortie de traçage écrite dans un fichier de suivi devient une rangée dans la table et est disponible dans la colonne TRACE
.
Après avoir désactivé le traçage SQL pour la session, vous pouvez exécuter des interrogations sur la vue SESSION_CLOUD_TRACE
.
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
Les données de SESSION_CLOUD_TRACE
sont conservées pendant toute la durée de la session. Une fois la session déconnectée ou fermée, les données ne sont plus disponibles.
Si la trace SQL est activée et désactivée plusieurs fois dans la même session, SESSION_CLOUD_TRACE
affiche les données de trace pour toutes les itérations de manière cumulative. Ainsi, la réactivation du traçage dans une session après l'avoir désactivé ne supprime pas les données de trace produites par l'itération précédente.