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

Administration Oracle Discussion :

PAS de SQL_ID


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Profil pro
    Administrateur de base de données
    Inscrit en
    novembre 2007
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : novembre 2007
    Messages : 1 340
    Points : 597
    Points
    597
    Par défaut PAS de SQL_ID
    Bonjour,

    Je ne trouve de SQL_ID pour une requête !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> select sql_id, sql_text, hash_value, plan_hash_value from v$sql where sql_text like 'montext'
    => J'ai des valeurs pour hash_value et plan_hash_value MAIS PAS de SQL_ID ? je ne trouve pas d'explication.


    MERCI.

    A+
    SDR.
    "ceux qui vivent, ce sont ceux qui luttent."

  2. #2
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    avril 2015
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : avril 2015
    Messages : 373
    Points : 520
    Points
    520
    Par défaut
    Est-ce que tu as essayé à partir des hash_value ou plan_hash_value sur les vues comme V$SQLAREA etc ...?????

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2013
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 1 970
    Points : 2 466
    Points
    2 466
    Par défaut
    Sous SQL*Plus, depuis la V12 je crois, tu peux utiliser la commande suivante qui va afficher direct ton sql_id après le SELECT.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> set feedback on sql_id
    
    SQL> select D.DEPARTMENT_NAME, E.DEPARTMENT_ID, E.FIRST_NAME, E.LAST_NAME, E.EMPLOYEE_ID from employees E, departments D where E.DEPARTMENT_ID = D.DEPARTMENT_ID AND (D.DEPARTMENT_ID = :DPT_ID01 OR D.DEPARTMENT_ID = :DPT_ID02) order by D.DEPARTMENT_NAME, E.FIRST_NAME, E.LAST_NAME;
    DEPARTMENT_NAME DEPARTMENT_ID FIRST_NAME LAST_NAME EMPLOYEE_ID
         ------------------------------ ------------- -------------------- ------
         ...
    79 rows selected.
    SQL_ID: 43gugwnrgt1mf

    De mémoire, un ordre SQL de recherche sur sql_text doit être manipulé avec précaution car Oracle peut ajouter des sauts de ligne, des blancs selon comment celui-ci a été saisi sous SQL*Plus...
    Je ferais donc
    SQL> select sql_id, sql_text, hash_value, plan_hash_value from v$sql where sql_text like '%une_PETITE_partie_permettant_d_identifier_mon_ordre_sql%;'

    Autre chose, v$sql peut être nettoyé très rapidement, selon l'activité de ta base donc ton ordre SQL peut en être chassé très vite.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    décembre 2002
    Messages
    3 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : décembre 2002
    Messages : 3 444
    Points : 7 935
    Points
    7 935
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    ...Autre chose, v$sql peut être nettoyé très rapidement, selon l'activité de ta base donc ton ordre SQL peut en être chassé très vite.
    C'est un point décisif en effet.
    Le cache de requêtes, qu'on interroge notamment par V$SQL, a pour vocation de conserver uniquement les requêtes les plus fréquentes / récentes. Il ne faut pas s'attendre à y retrouver l'intégralité des requêtes, et même très peu de temps après l'exécution d'une requête, celle-ci peut déjà avoir disparu.

    Si vous êtes en édition Entreprise, et avec les licences requises, vous pouvez exploiter V$ACTIVE_SESSION_HISTORY pour la dernière heure d'activité, et DBA_HIST_ACTIVE_SESS_HISTORY pour un historique plus lointain. Toute requête ayant duré au moins quelques secondes y apparaîtra.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

Discussions similaires

  1. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  2. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15
  3. Réponses: 1
    Dernier message: 23/06/2002, 00h15
  4. Pas de fork sous Windows?
    Par chezjm dans le forum POSIX
    Réponses: 8
    Dernier message: 11/06/2002, 12h15

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