Package DBMS_USERDIAG
Le package DBMS_USERDIAG fournit des sous-programmes permettant d'activer et de désactiver la fonction de trace SQL pour une instruction SQL, une session, un identificateur client ou un service applicatif, un module et une action spécifiques. Vous pouvez également collecter des valeurs de variable attachée, des informations sur les événements Wait et des statistiques sur les plans d'exécution pour obtenir des diagnostics plus détaillés.
Procédure SESSION_SQL_TRACE_ENABLE
Utilisez la procédure DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE pour activer la fonction de trace SQL pour la session en cours ou pour les sessions qui correspondent aux attributs de trace indiqués.
Syntaxe
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE (
level IN BINARY_INTEGER DEFAULT 1,
sid IN BINARY_INTEGER DEFAULT 0,
ser IN BINARY_INTEGER DEFAULT 0,
instance_name IN VARCHAR2 DEFAULT NULL,
binds IN BINARY_INTEGER DEFAULT 0,
waits IN BINARY_INTEGER DEFAULT 0,
client_id IN VARCHAR2 DEFAULT NULL,
service IN VARCHAR2 DEFAULT NULL,
module IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
plan_stat IN VARCHAR2 DEFAULT NULL,
sql_id IN VARCHAR2 DEFAULT NULL
);Paramètres
| Paramètre | Description |
|---|---|
level |
Indique le niveau de trace SQL. Le niveau 1 collecte les données de trace de base. Le niveau 4 inclut des informations sur les variables attachées et le niveau 8 inclut des informations sur les événements Wait. Les valeurs peuvent être combinées. Ce paramètre est facultatif et la valeur par défaut est 1. |
sid |
Indique l'identificateur de session de la session cible. La valeur par défaut, 0, identifie la session en cours. |
ser |
Indique le numéro de série de la session cible. La valeur par défaut, 0, identifie la session en cours. Utilisez sid et ser ensemble pour identifier une autre session. |
instance_name |
Indique l'instance de base de données qui contient la session cible. |
binds |
Indique si les informations sur les variables attachées doivent être incluses. Une valeur différente de zéro inclut les informations de variable attachée et ajoute la fonction de trace de niveau 4. La valeur par défaut est 0. |
waits |
Indique si les informations sur les événements Wait doivent être incluses. Une valeur différente de zéro inclut les informations sur les événements Wait et ajoute le suivi de niveau 8. La valeur par défaut est 0. |
client_id |
Indique l'identificateur client utilisé pour mettre en correspondance les sessions entre les instances de base de données. |
service |
Indique le service de base de données utilisé pour mettre en correspondance les sessions. |
module |
Indique le module d'application utilisé avec service pour mettre en correspondance les sessions. |
action |
Indique l'action d'application utilisée avec service et module pour mettre en correspondance les sessions. |
plan_stat |
Indique l'option de statistiques du plan d'exécution. Les valeurs valides sont NEVER, FIRST_EXECUTION, ALL_EXECUTIONS et ADAPTIVE. La valeur par défaut est FIRST_EXECUTION. |
sql_id |
Indique l'ID SQL. Lorsqu'elle est indiquée, la fonction de trace est limitée à l'instruction SQL portant cet ID. |
Exemple
L'exemple suivant active la fonction de trace SQL pour une instruction SQL spécifique et inclut les informations relatives aux variables attachées et aux événements Wait :
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
sql_id => '5yka4rvxpbjc6',
binds => 1,
waits => 1,
plan_stat => 'ADAPTIVE');
END;
/L'exemple suivant active la fonction de trace SQL pour une session différente en utilisant son ID de session et son numéro de série :
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
sid => 39,
ser => 15593,
binds => 1,
waits => 1);
END;
/Remarques sur l'utilisation
- Vous devez être connecté en tant qu'utilisateur
ADMINou disposer du privilègeEXECUTEsur le packageDBMS_USERDIAGpour exécuter cette procédure. - La fonction de trace SQL est désactivée par défaut. Activez une méthode de trace pour une règle de trace, exécutez la charge globale et désactivez la fonction de trace en utilisant les mêmes attributs d'identification.
- Indiquez une méthode de trace pour une règle de trace. Vous pouvez identifier les cibles de trace par ID SQL, session, identificateur client, service, module et action.
- Des niveaux de trace plus élevés, notamment la fonction de trace des variables attachées et des événements Wait, peuvent générer des fichiers trace volumineux et affecter les performances des applications.
- Un utilisateur local ne peut pas suivre une session appartenant à un utilisateur commun.
DBMS_USERDIAG.ENABLE_SQL_TRACE_EVENTest en phase d'abandon. Utilisez plutôtSESSION_SQL_TRACE_ENABLEetSESSION_SQL_TRACE_DISABLE.
Pour plus d'informations, reportez-vous à Procédure SESSION_SQL_TRACE_DISABLE.
Procédure SESSION_SQL_TRACE_DISABLE
Utilisez la procédure DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE pour désactiver la fonction de trace SQL pour la session en cours ou pour les sessions qui correspondent aux attributs de trace indiqués.
Désactivez la fonction de trace une fois la charge globale terminée. Lorsque la fonction de trace est désactivée, la base de données télécharge les données de trace collectées vers le bucket Cloud Object Storage configuré pour la fonction de trace SQL. Vous pouvez consulter les données de trace dans le fichier trace généré ou dans la vue SESSION_CLOUD_TRACE.
Syntaxe
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE (
level IN BINARY_INTEGER DEFAULT 1,
sid IN BINARY_INTEGER DEFAULT 0,
ser IN BINARY_INTEGER DEFAULT 0,
instance_name IN VARCHAR2 DEFAULT NULL,
binds IN BINARY_INTEGER DEFAULT 0,
waits IN BINARY_INTEGER DEFAULT 0,
client_id IN VARCHAR2 DEFAULT NULL,
service IN VARCHAR2 DEFAULT NULL,
module IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
plan_stat IN VARCHAR2 DEFAULT NULL,
sql_id IN VARCHAR2 DEFAULT NULL
);Paramètres
| Paramètre | Description |
|---|---|
level |
Indique le niveau de trace SQL. Le niveau 1 collecte les données de trace de base. Le niveau 4 inclut des informations sur les variables attachées et le niveau 8 inclut des informations sur les événements Wait. Les valeurs peuvent être combinées. Ce paramètre est facultatif et la valeur par défaut est 1. |
sid |
Indique l'identificateur de session de la session cible. La valeur par défaut, 0, identifie la session en cours. |
ser |
Indique le numéro de série de la session cible. La valeur par défaut, 0, identifie la session en cours. Utilisez sid et ser ensemble pour identifier une autre session. |
instance_name |
Indique l'instance de base de données qui contient la session cible. |
binds |
Indique si les informations sur les variables attachées doivent être incluses. Une valeur différente de zéro inclut les informations de variable attachée et ajoute la fonction de trace de niveau 4. La valeur par défaut est 0. |
waits |
Indique si les informations sur les événements Wait doivent être incluses. Une valeur différente de zéro inclut les informations sur les événements Wait et ajoute le suivi de niveau 8. La valeur par défaut est 0. |
client_id |
Indique l'identificateur client utilisé pour mettre en correspondance les sessions entre les instances de base de données. |
service |
Indique le service de base de données utilisé pour mettre en correspondance les sessions. |
module |
Indique le module d'application utilisé avec service pour mettre en correspondance les sessions. |
action |
Indique l'action d'application utilisée avec service et module pour mettre en correspondance les sessions. |
plan_stat |
Indique l'option de statistiques du plan d'exécution. Les valeurs valides sont NEVER, FIRST_EXECUTION, ALL_EXECUTIONS et ADAPTIVE. La valeur par défaut est FIRST_EXECUTION. |
sql_id |
Indique l'ID SQL. Lorsqu'elle est indiquée, la fonction de trace est limitée à l'instruction SQL portant cet ID. |
Indiquez les mêmes attributs d'identification que ceux que vous avez utilisés lorsque vous avez activé la fonction de trace.
Exemple
L'exemple suivant désactive la fonction de trace SQL pour l'instruction SQL identifiée par 5yka4rvxpbjc6 :
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
sql_id => '5yka4rvxpbjc6');
END;
/L'exemple suivant désactive la trace SQL pour la session identifiée par l'ID de session 39 et le numéro de série 15593 :
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
sid => 39,
ser => 15593);
END;
/Remarques sur l'utilisation
- Utilisez les mêmes attributs d'identification dans
SESSION_SQL_TRACE_DISABLEque dansSESSION_SQL_TRACE_ENABLE. - Si la session cible se ferme avant que la fonction de trace ne soit désactivée, la base de données télécharge le fichier trace lorsque la session se termine.
- Les données de trace peuvent contenir des données d'application. Protégez correctement le bucket et les informations d'identification Cloud Object Storage.
- Les données de trace sont disponibles dans la vue
SESSION_CLOUD_TRACEpendant la durée de la session dans laquelle la fonction de trace a été activée. Une fois la session terminée, les données ne sont plus disponibles dans la vue.
Pour plus d'informations, reportez-vous à Procédure SESSION_SQL_TRACE_ENABLE.