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

SQL Oracle Discussion :

Visionner les requêtes exécutées par une application


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut Visionner les requêtes exécutées par une application
    Bonjour,

    J'aimerais comprendre comment une application effectue des requêtes vers une base de données Oracle que j'administre.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$sqlarea WHERE module = 'compta_deal.exe'

    En gros, je visionne la table v$sql et v$sqlarea qui sont à peu près identiques mais les requêtes SQL dont je vois ne semblent pas être complètes.

    Est-ce que c'est sûr que toutes les requêtes sont historisées dans ces tables?

    Comment faire si je procède d'une mauvaise façon?

    Merci d'avance.
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Attention, il ne s'agit pas d'une table d'historique, mais d'une vue sur la shared pool. Autrement dit, quand il y a trop de requêtes différentes qui arrivent, certaines vont partir de la shared pool, pour faire de la place.
    Il se peut donc en effet que vous ne voyiez pas toutes les requêtes qui sont passées sur la base en utilisant cette vue. Et ce en particulier si vous avez beaucoup de requêtes différentes qui arrivent sur la base - le cas typique étant des requêtes qui n'utilisent pas les bind variables.

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Donc comment faire pour les voir toutes pour un module ou application donné?
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut C'est tout pret
    Pour tout tout voir: DBMS_MONITOR
    http://docs.oracle.com/cd/E11882_01/...r.htm#ARPLS091

    A noter l'excellent papier de C.Millsap:
    http://method-r.com/papers "Mastering Performance with Oracle Extended SQL Trace"

  5. #5
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 437
    Points
    1 437
    Par défaut
    Merci Rams7s pour ces liens, je n'ai pas bien compris en lisant mais le mot-clé DBMS_MONITOR m'a mis sur la piste et j'ai trouvé un autre tuto en français.

    Avec SQL*Plus ou SQL Developer
    - Relever le SID et SERIAL# de la session à tracer dans la vue v$session
    J'ai fait select * from v$session where program = 'compta_deal.exe'
    - Faire exec DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id, serial_num, waits, binds)
    Pour moi, avec SID = 134, SERIAL# = 336
    => exec DBMS_MONITOR.SESSION_TRACE_ENABLE(134, 336, TRUE, FALSE)
    - Là un fichier trace avec les waits events sera généré dans le dossier UDUMP
    Où est-ce UDUMP? Il suffit d'exécuter pour le connaître: show parameter user_dump_dest
    - Voir le fichier nomdelabase_ora_2292.trc pour voir les requêtes exécutées par l'application compta_deal.exe
    - Pour désactiver la trace
    SQL> exec DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id,serial_num);
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/10/2013, 19h09
  2. Tracer les requêtes exécutées par une fonction PL/PgSQL
    Par scheu dans le forum Administration
    Réponses: 1
    Dernier message: 02/02/2009, 14h01
  3. Réponses: 2
    Dernier message: 22/12/2008, 09h58
  4. Réponses: 15
    Dernier message: 08/08/2008, 23h25
  5. Réponses: 44
    Dernier message: 14/03/2005, 09h43

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