Maison > base de données > Oracle > exécution de requête Oracle SQL

exécution de requête Oracle SQL

WBOY
Libérer: 2023-05-18 11:19:07
original
6964 Les gens l'ont consulté

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 :

  1. Oracle Enterprise Manager (OEM) - Il s'agit d'un outil de visualisation fourni par Oracle, grâce auquel nous pouvons facilement visualiser l'exécution de la base de données, y compris les instructions SQL actives.
  2. Oracle SQL Developer - Il s'agit d'un outil de développement populaire qui comprend un outil pratique de surveillance et d'analyse qui peut interroger l'exécution d'instructions SQL et analyser les performances SQL.
  3. Scripts SQL d'Oracle - Oracle fournit des scripts SQL pour interroger les instructions SQL actives. Ces scripts peuvent être téléchargés à partir du site Web d'Oracle.

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 :

  1. Interrogez le SQL_ID de 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.

Interrogez les détails de l'instruction SQL en cours d'exécution
  1. SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s.program, s.module, s.action

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.

Interroger les instructions SQL exécutées par un utilisateur
  1. SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s .program, s.module, s.action

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.

Interrogez la première instruction SQL exécutée
  1. SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
s.last_call_et, s.logon_time, s program. , s.module, s.action

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

  1. SELECT s.sid, s.serial#, s.username, s.status, t.sql_id, t.sql_text,
  2. s.last_call_et, s.logon_time, s.program , s.module, s.action
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 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal