50 votes

Comment tuer une instruction SELECT en cours d'exécution

Comment puis-je arrêter une instruction SELECT en cours d'exécution en tuant la session ?

La commande me donne continuellement une sortie basée sur l'instruction SELECT, je veux l'arrêter entre les deux.

5voto

James Drinkard Points 2688

C'est ce que j'utilise. Je fais cette première requête pour trouver les sessions et les utilisateurs :

 select s.sid, s.serial#, p.spid, s.username, s.schemaname
     , s.program, s.terminal, s.osuser
  from v$session s
  join v$process p
    on s.paddr = p.addr
 where s.type != 'BACKGROUND';

Cela me permettra de savoir s'il y a plusieurs sessions pour le même utilisateur. Ensuite, je vérifie généralement si une session bloque la base de données.

 SELECT SID, SQL_ID, USERNAME, BLOCKING_SESSION, COMMAND, MODULE, STATUS FROM v$session WHERE BLOCKING_SESSION IS NOT NULL;  

Ensuite, j'exécute une instruction ALTER pour tuer une session spécifique dans ce format :

 ALTER SYSTEM KILL SESSION 'sid,serial#'; 

Par exemple:

 ALTER SYSTEM KILL SESSION '314, 2643';

2voto

ObiWanKenobi Points 3020

Pour tuer une session dans Oracle, vous utilisez la commande ALTER SYSTEM KILL SESSION .

Détails ici : http://www.oracle-base.com/articles/misc/KillingOracleSessions.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X