sql >> Database >  >> RDS >> Oracle

Hoe alle actieve en inactieve orakelsessies voor de gebruiker te doden

De KILL SESSION commando doden niet echt de sessie. Het vraagt ​​alleen de sessie om zichzelf te doden. In sommige situaties, zoals wachten op een antwoord van een externe database of het terugdraaien van transacties, zal de sessie zichzelf niet onmiddellijk beëindigen en wachten tot de huidige bewerking is voltooid. In deze gevallen heeft de sessie de status "marked for kill ". Het wordt dan zo snel mogelijk gedood.

Controleer de status om te bevestigen:

SELECT sid, serial#, status, username FROM v$session;

U kunt ook IMMEDIATE . gebruiken clausule:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

De IMMEDIATE clausule heeft geen invloed op het werk dat door de opdracht wordt uitgevoerd, maar geeft de controle onmiddellijk terug aan de huidige sessie, in plaats van te wachten op bevestiging van de kill. Kijk eens naar Killing Oracle Sessions.

Bijwerken Als je alle sessies wilt beëindigen, kun je gewoon een klein script voorbereiden.

SELECT 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''' IMMEDIATE;' FROM v$session;

Spoel het bovenstaande naar een .sql bestand en voer het uit, of kopieer de uitvoer en voer het uit.



  1. Oracle Database Security:Database Auditing

  2. SQL TUSSEN-Slimme tips om te scannen op een reeks waarden

  3. Hoe voer ik een GROUP BY uit op een aliased kolom in MS-SQL Server?

  4. Hoe commentaar te geven in SQL