Dans la gestion de bases de données, Oracle est une base de données très couramment utilisée et importante. En exploitation et en maintenance, il est souvent nécessaire de surveiller l'exécution de la base de données, en particulier les instructions SQL exécutées, ce qui peut grandement nous aider à suivre et à optimiser les performances SQL. Dans cet article, nous présenterons comment interroger les instructions SQL en cours d'exécution dans la base de données Oracle.
Outils pour interroger les instructions SQL actives
Oracle fournit des outils pour nous aider à interroger les instructions SQL actives. Ces outils incluent :
Script SQL pour interroger l'instruction SQL en cours d'exécution
Dans la base de données Oracle, nous pouvons utiliser les deux vues système V$SESSION et V$SQL pour interroger les instructions SQL actives.
La vue V$SESSION contient toutes les informations de session actuellement actives, y compris le SQL_ID de chaque session, qui est l'identifiant de l'instruction SQL exécutée par chaque session.
La vue V$SQL contient des informations sur toutes les instructions SQL compilées, y compris SQL_ID, SQL_TEXT, etc.
Voici quelques scripts SQL pour interroger l'instruction SQL en cours d'exécution :
SELECT s.sid, s.serial#, s.sql_id, s.sql_child_number, t . sql_text
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username <> et le texte SQL correspondant exécuté par toutes les sessions actives.
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username <> SYS';
Ce script renverra le SQL_ID exécuté par la session active et des informations SQL détaillées, y compris le nom d'utilisateur, l'état, la durée d'exécution récente, le nom du programme, l'action, le texte SQL, etc.
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.status = 'ACTIVE'
AND s.username = 'your_username'
;
Ce script renverra l'instruction SQL en cours d'exécution par un utilisateur et les informations détaillées correspondantes.
FROM v$session s, v$sqltext_with_newlines t
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> AND s.sql_id IN (
SELECT MIN(sql_id)
FROM v$session
WHERE username <> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);
Ce script renverra le premier Le L'instruction SQL exécutée inclut le nom d'utilisateur, l'état, la durée d'exécution récente, le nom du programme, l'action, le texte SQL, etc.
Interrogez la dernière instruction SQL exécutée
WHERE s.sql_id = t.sql_id
AND s.STATUS = 'ACTIVE'
AND s.username <> AND s.sql_id IN (
SELECT MAX(sql_id)
FROM v$session
WHERE username <> 'SYS'
AND STATUS = 'ACTIVE'
GROUP BY username
);
Ce script renverra le dernier exécuté Instructions SQL, y compris le nom d'utilisateur, l'état, la durée d'exécution récente, le nom du programme, l'action, le texte SQL, etc.
Résumé
Dans la gestion de bases de données Oracle, nous avons souvent besoin d'interroger les instructions SQL en cours d'exécution. Oracle fournit des vues système pour interroger les instructions SQL actives. En interrogeant ces vues et en utilisant des scripts SQL, nous pouvons facilement interroger les instructions SQL actives et les informations associées pour optimiser et surveiller les performances SQL. Dans le même temps, Oracle Enterprise Manager et Oracle SQL Developer fournissent également la fonction d'interrogation des instructions SQL, qui peuvent être sélectionnées et utilisées en fonction des besoins personnels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!