Utilisation de la fonction de trace SQL sur Autonomous AI Database sur une infrastructure Exadata dédiée
Vous pouvez utiliser la fonction de trace SQL avec Autonomous AI Database on Dedicated Exadata Infrastructure pour vous aider à identifier la source d'une charge globale de base de données excessive, telle qu'une instruction SQL à forte consommation de ressources dans votre application.
A propos de la fonction de trace SQL
Lorsqu'une opération d'application prend plus de temps que prévu, l'obtention d'une trace de toutes les instructions SQL exécutées dans le cadre de cette opération avec des détails tels que le temps passé par cette instruction SQL dans les phases d'analyse, d'exécution et d'extraction vous aidera à identifier et à résoudre la cause du problème de performances. Pour ce faire, vous pouvez utiliser la fonction de trace SQL sur une base de données d'IA autonome.
- Commencez par configurer la base de données pour enregistrer les fichiers SQL Trace. Pour plus d'informations, reportez-vous à Configuration de la trace SQL sur la base de données Autonomous AI.
- Activez ensuite la fonction de trace SQL. Reportez-vous à Activation de la trace SQL sur la base de données Autonomous AI.
Remarques :
L'activation de la fonction de trace SQL peut dégrader les performances de l'application pour la session pendant que la collecte de trace est activée. Cette incidence sur les performances est attendue en raison du temps système lié à 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. Reportez-vous à Désactivation de la trace SQL.
- Lorsque vous désactivez la fonction de trace SQL, les données de trace collectées pendant l'exécution de la session avec la fonction de trace activée sont écrites dans la vue
SESSION_CLOUD_TRACEde la session et dans un fichier trace du bucket, que vous configurez lors de la configuration de la fonction de trace SQL. Deux options sont disponibles pour afficher les données de trace :- Affichez et analysez les données SQL Trace dans le fichier trace enregistré dans la banque d'objets cloud. Pour plus d'informations, reportez-vous à Affichage du fichier trace enregistré dans la banque d'objets cloud sur la base de données Autonomous AI.
- Affichez et analysez les données SQL Trace enregistrées dans la vue
SESSION_CLOUD_TRACE. Pour plus d'informations, reportez-vous à Affichage des données de trace dans la vue SESSION_CLOUD_TRACE sur la base de données d'IA autonome.
Configuration de la fonction de trace SQL sur Autonomous AI Database
Activation de la fonction de trace SQL sur Autonomous AI Database
Remarques :
L'activation de la fonction de trace SQL peut dégrader les performances de l'application pour la session pendant que la collecte de trace est activée. Cette incidence sur les performances est attendue en raison du temps système lié à la collecte et à l'enregistrement des données de trace.Afin d'activer la trace SQL pour une session de base de données, procédez comme suit :
Désactiver la fonction de trace SQL
Visualisation du fichier trace enregistré dans la banque d'objets cloud sur Autonomous AI Database
DEFAULT_LOGGING_BUCKET.
La fonction de trace SQL écrit les données de trace collectées dans la session dans le stockage d'objet cloud au format suivant :
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
Les composants du nom de fichier sont les suivants :
-
default_logging_bucket : est la valeur de la propriété de base de données
DEFAULT_LOGGING_BUCKET. Pour plus d'informations, reportez-vous à Configuration de la trace SQL sur la base de données Autonomous AI. -
clientID: est l'identifiant du client. Pour plus d'informations, reportez-vous à Activation de la fonction de trace SQL sur la base de données Autonomous AI. -
moduleName: nom du module. Pour plus d'informations, reportez-vous à Activation de la fonction de trace SQL sur la base de données Autonomous AI. -
numID1_numID2: deux identificateurs fournis par la fonction de trace SQL. Les valeurs numériquesnumID1etnumID2différencient de manière unique chaque nom de fichier trace d'autres sessions utilisant la fonction de trace et créant des fichiers trace dans le même bucket de stockage d'objet cloud.Lorsque le service de base de données prend en charge le parallélisme et qu'une session exécute une requête parallèle, la fonction SQL Trace peut produire plusieurs fichiers trace avec différentes valeurs
numID1etnumID2.
Remarques :
Lorsque la trace SQL est activée et désactivée plusieurs fois dans la même session, chaque itération de trace génère un fichier trace distinct dans le stockage d'objet cloud. Pour éviter d'écraser les traces précédentes générées dans la session, les fichiers générés ultérieurement suivent la même convention de dénomination et un suffixe numérique est ajouté au nom de fichier trace. Ce suffixe numérique commence par le nombre 1 et est ensuite incrémenté de 1 pour chaque itération de traçage.Par exemple, voici un exemple de nom de fichier trace généré lorsque vous définissez l'identificateur client sur "sql_test" et le nom de module sur "modname" :
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
Vous pouvez exécuter TKPROF pour convertir le fichier trace en fichier de sortie lisible.
Visualisation des données de trace dans la vue SESSION_CLOUD_TRACE sur Autonomous AI Database
SESSION_CLOUD_TRACE de la session où la fonction de trace a été activée.
SESSION_CLOUD_TRACE. La vue SESSION_CLOUD_TRACE comprend les colonnes ROW_NUMBER et TRACE.DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)La colonne ROW_NUMBER indique l'ordre des données de trace trouvées dans la colonne TRACE. Chaque ligne de la sortie de trace écrite dans un fichier trace devient une ligne de la table et est disponible dans la colonne TRACE.
Après avoir désactivé la fonction de trace SQL pour la session, vous pouvez exécuter des requêtes 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 de toutes les itérations cumulées. Par conséquent, la réactivation de la fonction de trace dans une session après sa désactivation n'enlève pas les données de trace générées par l'itération précédente.