IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[10g/11g] Dernière activité de la session


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut [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
    Images attachées Images attachées  

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    les vues ACTIVE_SESSION_HISTORY et V$SQL peuvent aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut merci ... mais ça ne fonctionne pas (voir réponse)
    Citation Envoyé par zinzineti Voir le message
    les vues ACTIVE_SESSION_HISTORY et V$SQL peuvent aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    C'est quoi ta version ORACLE ? j'ai la version :

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
    et cette requête me renvoie des infos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod 
    PL/SQL Release 10.2.0.1.0 - Production                           
    CORE	10.2.0.1.0	Production                                         
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production          
    NLSRTL Version 10.2.0.1.0 - Production                           
     
    BLOCKING_SESSION_STATUS SESSION_ID             PROGRAM                                                          SESSION_TYPE LAST_ACTIVE_TIME   LAST_LOAD_TIME      
    ----------------------- ---------------------- ---------------------------------------------------------------- ------------ ------------------ ------------------- 
    NO HOLDER               146                    SQL Developer                                                    FOREGROUND   16/12/011 14:52:14 2011-12-16/13:52:14 
    NOT IN WAIT             146                    SQL Developer                                                    FOREGROUND   16/12/011 13:49:07 2011-12-16/13:49:08
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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) ?
    Je ne suis pas du tout habitué à poster sur les forums ...

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Il me semble que ces vues sont disponibles dans 11gr2

    V$ACTIVE_SESSION_HISTORY et V$SQL

    pour la présentation j'utilise la balise CODE
    Etienne ZINZINDOHOUE
    Billets-Articles

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut 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

  8. #8
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    je n'ai pas testé sous 11gr2
    Etienne ZINZINDOHOUE
    Billets-Articles

  9. #9
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut Je viens de trouver la solution (versions 10g et 11g) !
    Je viens de trouver la solution (commune pour les versions 10g et 11g) (voir colonne "Dernière activité") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Voir le message
    je n'ai pas testé sous 11gr2

  10. #10
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    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
    Etienne ZINZINDOHOUE
    Billets-Articles

  11. #11
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut ok ... je prends note des nouvelles zones ... merci
    ok ... je prends note des nouvelles zones ... merci

    Citation Envoyé par zinzineti Voir le message
    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

  12. #12
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut
    Bonjour à tous et Bonne Année 2012 !

    Je rentre de congés ce matin ... et visiblement mes neurones sont reposés ...

    J'avais cherché MIDI à 14 heures ...

    La solution est beaucoup plus simple que celle annoncée précédemment.
    En effet, il faut TOUT SIMPLEMENT utiliser la colonne SECONDS_IN_WAIT de V$SESSION !!!! (voir ci-dessous) ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT sid,to_char(logon_time,'dd/mm/yyyy HH24:MI:SS') AS "Connecté depuis",
    to_char(sysdate-(SECONDS_IN_WAIT/(24*60*60)),'dd/mm/yyyy HH24:MI:SS') AS "Dernière activité"
    FROM V$SESSION s ORDER BY sid;
    ATTENTION : Paragraphe ci-dessous uniquement pour ORACLE 11g :
    Si la colonne SECONDS_IN_WAIT est vraiment dépréciée, vous pouvez la remplacer par WAIT_TIME_MICRO/1000000 ... MAIS je ne comprends pas POURQUOI la société ORACLE déprécierait une colonne pour la remplacer par la même colonne multipliée par 1 million ! Désolé, mais je n'arrive pas à en voir l'intérêt (peut-être pour plus de précision ?) ...

    --> avec WAIT_TIME_MICRO/1000000 ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT sid,to_char(logon_time,'dd/mm/yyyy HH24:MI:SS') AS "Connecté depuis",
    to_char(sysdate-(WAIT_TIME_MICRO/1000000/(24*60*60)),'dd/mm/yyyy HH24:MI:SS') AS "Dernière activité"
    FROM V$SESSION s ORDER BY sid;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Oracle 10g : Lock sur un objet par session introuvable
    Par dannyl dans le forum Administration
    Réponses: 6
    Dernier message: 30/07/2010, 11h07
  2. [10g 11g] Certification OCM
    Par apersonnat dans le forum Administration
    Réponses: 0
    Dernier message: 02/11/2009, 11h17
  3. gestion des evenements sous oracle 10g/11g
    Par debutant90 dans le forum Débuter
    Réponses: 1
    Dernier message: 27/02/2008, 11h20
  4. [10G] connaitre le nombre max de sessions
    Par NeHuS dans le forum Oracle
    Réponses: 1
    Dernier message: 28/03/2006, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo