1 pièce(s) jointe(s)
[10g/11g] Dernière activité de la session
Bonjour,
ORACLE 10g : dans quelle table du dictionnaire trouver la colonne "Dernière activité le : " (activité de la session)?
En effet je n'arrive pas à trouver cette colonne, bien qu'ayant déjà cherché sur le web ... :(
REMARQUE : j'ai par contre trouvé la date et l'heure de connexion de la session. Il s'agit de la colonne LOGON_TIME du Synonyme V$SESSION :)
merci par avance
merci ... mais ça ne fonctionne pas (voir réponse)
Citation:
Envoyé par
zinzineti
les vues ACTIVE_SESSION_HISTORY et V$SQL peuvent aider
Code:
1 2
| SELECT h.BLOCKING_SESSION_STATUS,h.session_id,h.program,h.SESSION_TYPE,to_char(s.last_active_time,'dd/mm/yyy HH24:MI:SS') LAST_ACTIVE_TIME,s.LAST_LOAD_TIME
FROM V$ACTIVE_SESSION_HISTORY h INNER JOIN V$SQL s ON h.sql_id = s.sql_id |
Merci zinzineti, mais ça ne fonctionne pas ...
Je teste la session dont le SID = 34
La vue V$ACTIVE_SESSION_HISTORY ne comporte aucun enregistrement ...
SELECT * FROM V$ACTIVE_SESSION_HISTORY;
(ne renvoie aucune ligne) :(
Alors j'ai remplacé V$ACTIVE_SESSION_HISTORY par V$SESSION dans votre requête et le résultat ne renvoie aucune ligne non plus ... CAR la colonne "sql_id" de la vue V$SESSION est vide (valeur NULL) ...
SELECT h.sid,h.program,to_char(s.last_active_time,'dd/mm/yyy HH24:MI:SS') LAST_ACTIVE_TIME,s.LAST_LOAD_TIME FROM V$SESSION h , v$sql s WHERE h.sid = 34 AND h.sql_id = s.sql_id;
(ne renvoie aucune ligne) :(
La requête "SELECT sql_id FROM v$session WHERE sid=34;" renvoie la valeur NULL pour SQL_ID :(
Merci encore pour votre réponse ...
Auriez-vous une autre piste ?
J'ai essayé sur une version 11.2.0.1.0
Re,
Désolé, j'ai essayé sur une version 11.2.0.1.0 (j'ai des bases Oracle en 10 et en 11) et ça ne fonctionne visiblement pas avec cette version ...
Par contre la requête ci-dessous (merci pour l'info des 2 vues) fonctionne en version 10.2.0.5.0 : ;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| SELECT
ses.sid,
to_char(ses.logon_time,'dd/mm/yyyy HH24:MI:SS') as "Connecté depuis",
to_char(s.last_active_time,'dd/mm/yyyy HH24:MI:SS') as "Dernière activité SESS",
(SELECT distinct to_char(s.last_active_time,'dd/mm/yyyy HH24:MI:SS')
FROM V$ACTIVE_SESSION_HISTORY h,V$SQL s
where h.sql_id = s.sql_id
and h.session_id = ses.sid
and s.last_active_time=(select max(s2.last_active_time)
from V$SQL s2,
V$ACTIVE_SESSION_HISTORY h2
where h2.sql_id = s2.sql_id
and h2.session_id = h.session_id) ) as "Dernière activité HISTO"
FROM V$SESSION ses ,
v$sql s
WHERE ses.sql_id = s.sql_id(+)
order by ses.sid; |
.. mais je n'ai pas systématiquement un résultat pour la deuxième colonne de la requête "Dernière activité SESS", dont le résultat est plus proche de celui que m'affiche la console ...
MAIS je confirme qu'en version 11 ça ne fonctionne pas ...
Sais-tu pourquoi ?
MERCI
Comment fais-tu pour insérer tes "espèces" de tableaux dans tes messages (c'est plus propre) :lol: ?
Je ne suis pas du tout habitué à poster sur les forums ... :oops:
Elles sont dispo ... mais ne retournent pas de résultat
Elles sont dispo ... mais ne retournent pas de résultat ...
Tu as déjà essayé en 11gr2 ? (Moi j'ai les versions 10 gr2 et 11gr2 64 bits sur windows server 2008 standard R2)
Bonne soirée et bon w-e
Je viens de trouver la solution (versions 10g et 11g) !
:yaisse2: Je viens de trouver la solution (commune pour les versions 10g et 11g) (voir colonne "Dernière activité") : :yaisse2: :ccool:
Code:
1 2 3
| select sid,to_char(logon_time,'dd/mm/yyyy HH24:MI:SS') as "Connecté depuis",
(select to_char(sysdate-(SECONDS_IN_WAIT/(24*60*60)),'dd/mm/yyyy HH24:MI:SS') from V$SESSION_WAIT where V$SESSION_WAIT.sid=s.sid) as "Dernière activité"
from V$SESSION s order by sid; |
;) Bonnes fêtes de Noël et de fin d'année et Bonne et Heureuse Année 2012 ! ;)
Citation:
Envoyé par
zinzineti
je n'ai pas testé sous 11gr2
ok ... je prends note des nouvelles zones ... merci
ok ... je prends note des nouvelles zones ... merci
Citation:
Envoyé par
zinzineti
Bravo ;)
une petite remarque quand même :
la colonne SECONDS_IN_WAIT est dépréciée il faut utiliser à la place
WAIT_TIME_MICRO ou
TIME_SINCE_LAST_WAIT_MICRO a lire