sql >> Databasteknik >  >> RDS >> Oracle

Hur man dödar alla aktiva och inaktiva oracle-sessioner för användaren

KILL SESSION kommandot dödar faktiskt inte sessionen. Den ber bara sessionen att ta livet av sig. I vissa situationer, som att vänta på ett svar från en fjärrdatabas eller återställa transaktioner, kommer sessionen inte att döda sig själv omedelbart utan väntar på att den aktuella operationen ska slutföras. I dessa fall kommer sessionen att ha statusen "markerad för dödande ". Den kommer sedan att dödas så snart som möjligt.

Kontrollera statusen för att bekräfta:

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

Du kan också använda IMMEDIATE klausul:

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

IMMEDIATE klausulen påverkar inte det arbete som utförs av kommandot, men det återställer kontrollen tillbaka till den aktuella sessionen omedelbart, snarare än att vänta på bekräftelse av dödandet. Ta en titt på Killing Oracle Sessions.

Uppdatera Om du vill döda alla sessioner kan du bara förbereda ett litet skript.

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

Spol ovanstående till en .sql fil och kör den, eller kopiera klistra in utdata och kör den.



  1. Dela upp stora raderingsoperationer i bitar

  2. Groovy SQL Oracle Array Funktion/Procedur Out Parametrar Registrering

  3. Tuning Input/Output (I/O) operationer för PostgreSQL

  4. Exekveringssekvens för Group By, Have and Where-klausul i SQL Server?