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 :

Vue détaillée comme V$SQL pour stats exécution SELECT [18c]


Sujet :

Administration Oracle

  1. #1
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 993
    Points : 2 499
    Points
    2 499
    Par défaut Vue détaillée comme V$SQL pour stats exécution SELECT
    Amis DBA bonjour,

    Je cherche une vue V$*** où on aurait une entrée pour chaque exécution d'un SELECT. Le but est de comparer entre elles les différentes exécutions.
    Le problème est que je n'ai trouvé jusqu'à présent que des vues agrégées (V$SQL, V$SQLSTATS, V$SQLAREA, V$SQL_MONITOR) ou des vues sur les plans d'exécution (V$SQL_PLAN_STATISTICS, V$SQL_PLAN_STATISTICS_ALL).

    En désespoir de cause j'ai deux options :
    1) vider les données en SHARED_POOL après chaque exécution, une fois les données dans V$SQLSTATS ou V$SQL affichées.
    2) utiliser Autotrace mais les infos ne sont pas nombreuses (du moins sous SQL*Plus)

    Voilà, si vous avez des idées, je suis preneur
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Chaque exécution d'un SELECT ? A ma connaissance une telle vue n'existe pas, et heureusement, car ce serait une surcharge considérable.
    Les requêtes suffisamment longues ou répétitives sont tracées (moyennant la licence correspondante) par des mécanismes comme V$ACTIVE_SESSION_HISTORY ou AWR.

    Je ne sais pas quelles informations précises vous aimeriez obtenir, mais dans certaines vues (V$SQL_PLAN_STATISTICS par exemple), il existe différentes colonnes dont le nom contient LAST, comme LAST_ELAPSED_TIME, qui sont relatives uniquement à la dernière exécution de la requête. Ca permet donc de distinguer la dernière exécution par rapport au cumul des précédentes.

    D'ailleurs, vous savez sans doute que quand on affiche un plan d'exécution avec DBMS_XPLAN.DISPLAY_CURSOR, on peut utiliser l'option de formatage LAST, pour n'obtenir justement que les statistiques liées à la dernière exécution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table (DBMS_XPLAN.DISPLAY_CURSOR('atfwcg8anrykp', NULL, 'ALLSTATS LAST');
    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

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    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 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Merci pour la confirmation Pomalaix, je pensais qu'effectivement ce genre de vue n'existait pas.

    Ce que je veux c'est une vue avec le nombre de lignes affichées par le SELECT ramené au nombre de blocs lus ==> je pense que cela est un bon indicateur sur la performance d'un plan d'exécution.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bonjour,

    Comme le dit Pomalaix ce genre de fonctionnalités fait généralement partie de packs payants. Tu pourrais utiliser le package DBMS_SQLTUNE mais il nécessite la licence Diagnostic Pack et Tuning. Si tu n'as pas la licence tu peux toujours utiliser Statspack, ou forcer la création d'une trace avant chaque exécution de la requête.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2017, 21h41
  2. Comment introduire LIKE '?%' dans $sql pour une requete SELECT préparée ?
    Par brico-web dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/08/2014, 11h42
  3. [SQL] Problème exécution sql pour insertion fichier csv
    Par Kyvin dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/08/2006, 17h47
  4. Réponses: 7
    Dernier message: 10/02/2005, 13h44

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