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

PL/SQL Oracle Discussion :

Traçage de requêtes, tri par ordre d'exécution depuis la table V$SQLAREA


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut Traçage de requêtes, tri par ordre d'exécution depuis la table V$SQLAREA
    Bonjour,

    Je cherche à tracer les requête sur un serveur ORACLE. Afin d'y parvenir, j'utilise la table V$SQLAREA. Ainsi, j'arrive a visualiser toutes les requêtes qui s’exécutent, comme un profiler. Voici la requête que j'utilise :

    SELECT * FROM V$SQLAREA
    ORDER BY last_active_time

    Le hic, c'est que le chanmp "last_active_time" est un champ "date". Alors quand je trie mes enregistrements, je ne les retrouve pas dans le bon ordre d'exécution s'ils se sont exécutés dans la même seconde. Cela me perturbe beaucoup pour mon analyse car l'ordre d'exécution est important.

    Savez-vous comment je peux sortir les requêtes dans l'ordre d'exécution exact ?

    Merci d'avance pour votre aide,

    MS

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Activez la trace SQL dans les traitements.

  3. #3
    Membre chevronné
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 395
    Par défaut affichage requêtes trié par ordre d'execution
    Il n'y a pas besoin d'activer le traçage de requête au niveau session, juste modifier légèrement ta requête comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select sql_id, to_char(last_active_time,'dd/mm hh24:mi') last_active_time  from v$sqlarea where parsing_schema_name=nom_du_schema
      2    and (sql_text like '%aaa%' or sql_text like '%ccc%' or sql_text like '%ddd%' )
      3   order by 2 ;
    le prédicat qui contient sql_text veut dire que les requêtes sont labéllisées (ex : select /*aaa*/ col1, col2, .. from ..)

    Voilà

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par dell68 Voir le message
    Il n'y a pas besoin d'activer le traçage de requête au niveau session...
    A ma compréhension last active time c'est la dernière fois que la requête a été active. Cela veut dire que si mon traitement exécute quelque chose de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    requete 1
    requete 2
    requuete 1
    et que j'interroge à ce moment la vue, la première exécution de la requête 1 n'est plus disponible.
    Par contre la trace enregistre cette succession.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut
    Bonjour,

    Merci pour vos réponses. En fait, mon problème provient du fait que dans la table V$SQLAREA les requêtes ne sont pas ordrées par ordre d'exécution. Exemple :

    Ce que je fais en réalité, dans l'ordre, à exactement 12:34:55 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM MaTable1
    SELECT * FROM MaTable2
    SELECT * FROM MaTable3
    SELECT * FROM MaTable4
    Ce que me sort ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    12:34:55  : SELECT * FROM MaTable4
    12:34:55  : SELECT * FROM MaTable1
    12:34:55  : SELECT * FROM MaTable3
    12:34:55  : SELECT * FROM MaTable2
    Ceci est dû au fait que je trie par "LastActiveTime" et que les requêtes se sont exécutées dans la même seconde. J'ai besoin d'avoir ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    12:34:55  : SELECT * FROM MaTable1
    12:34:55  : SELECT * FROM MaTable2
    12:34:55  : SELECT * FROM MaTable3
    12:34:55  : SELECT * FROM MaTable4
    A part trier avec le champ "LastActiveTime", je ne vois pas comment faire...

    Merci !

    Cordialement,

    MS

  6. #6
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Activez la trace SQL dans les traitements.
    je confirme l'idée, il y a un autre moyen de tracer les requêtes. c'est sur une sortie physique (fichier de trace).

Discussions similaires

  1. Tri par ordre croissant
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 13/12/2008, 20h19
  2. Tri par ordre alpha, sensibilité à la casse
    Par linou dans le forum Oracle
    Réponses: 2
    Dernier message: 30/09/2005, 14h45
  3. [JComboBox] tri par ordre alphabetique
    Par GETah dans le forum Composants
    Réponses: 3
    Dernier message: 22/04/2005, 14h10
  4. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21
  5. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27

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