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.