Maison > Article > base de données > Comment interroger une impasse dans Oracle
Dans Oracle, vous pouvez utiliser l'instruction select pour interroger un blocage. Cette instruction est utilisée pour une requête de données simple. La syntaxe est "select * from v$session which sid in (select session_id from v$locked_object)".
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
1. Vérifiez les blocages
1) Utilisez l'utilisateur dba pour exécuter l'instruction suivante
select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object)
S'il y a un résultat de sortie, cela signifie qu'il y a un blocage et quelle machine peut voir le une impasse ? Description du champ :
Username : l'utilisateur de la base de données utilisé par l'instruction de blocage ;
Lockwait : l'état du blocage, s'il y a du contenu, cela signifie qu'il est dans une impasse.
Statut : Statut, actif signifie bloqué.
Machine : La machine sur laquelle se trouve l'instruction de blocage.
Programme : De quelle application proviennent principalement les instructions bloquées ?
2) Utilisez l'utilisateur dba pour exécuter les instructions suivantes pour afficher les instructions bloquées.
select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object))
2. Solution au blocage
1) Trouvez le processus bloqué :
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#, l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
2) Supprimez le processus bloqué : modifiez la session de suppression du système 'sid,serial#' (où sid=l. session_id)
Tutoriel recommandé : "Tutoriel vidéo Oracle"
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!