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 :

Analyser les Select d'une table : nombre, temps exécution, verrous, attente. [11gR2]


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    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 : 2 005
    Par défaut Analyser les Select d'une table : nombre, temps exécution, verrous, attente.
    Bonjour,

    Mon client me dit que l'accès à certaines tables est lente, SANS plus d'information car c'est un ressenti des user, et il aimerait bien que je jette un oeil

    Etant assez joueur et curieux de mon côté, je vais chercher des infos sur ces tables en partant un peu à l'aveuglette.


    Mon objectif :
    1) Trouver la fréquence des Select sur une table, avec les différents users
    2) Trouver sur 24H00 le total du temps passé à exécuter les Select
    3) Trouver les délais d'attente pour accéder à une table indépendamment du temps utilisé pour ramener en SGA les données et trier les données
    4) Trouver la quantité de données en octets manipulées par chaque Select

    Mes solutions :
    1) J'ai mis en place un audit sur les Select via le package DBMS_FGA.
    Dans la vue DBA_FGA_AUDIT_TRAIL je vais avoir les opérations tracées mais je trouve que les infos sont pauvres : je vais pouvoir grouper par jour et par heure les Select et avoir leur nombre mais je n'ai pas le temps d'exécution de chaque requête.

    2) Dans la vue V$SQL j'ai des choses plus sympas :
    ELAPSED_TIME : Elapsed time (in microseconds) used by this cursor for parsing, executing, and fetching - c'est un cumul je crois du nombre de fois que l'ordre SQL a été exécuté
    CPU_TIME : CPU time (in microseconds) used by this cursor for parsing, executing, and fetching

    EXECUTIONS : nombre de fois où le même Select a été exécuté?
    LOADS : nombre de fois où l'objet a été chargé? On parle du chargement de l'objet en mémoire, de ses données? J’interprète comment cette valeur?

    3) Les quatre valeurs suivantes ont l'air prometteuses mais comment les comprendre car, euh, le commentaire Oracle est quand même peu explicite.
    Il s'agit de délai d'attente car des verrous ou des latches ont été posés sur des données auxquelles le Select veut accéder?
    APPLICATION_WAIT_TIME : Application wait time (in microseconds)
    CONCURRENCY_WAIT_TIME : Concurrency wait time (in microseconds)
    CLUSTER_WAIT_TIME : Cluster wait time (in microseconds)
    USER_IO_WAIT_TIME : User I/O Wait Time (in microseconds)

    Un problème est que je ne sais pas quand V$SQL est vidée car le nombre d’enregistrements entre V$SQL et DBA_FGA_AUDIT_TRAIL n'a rien à voir donc dans V$SQL je n'ai qu'une fraction des Select qui m'intéressent.

    4) Là, je ne vois pas où chercher...

    Si vous avez d'autres idées sur ces histoires de lenteur, identifier les goulots d'étranglement dans Oracle je suis preneur.

  2. #2
    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 Analyser les select d'une table : nombre, temps exécution, verrous, attente
    Tu as les historiques dans le réferentiel AWR via les vues suivantes
    DBA_HIST_SQLXXXXX, en éxécutant ceci tu les auras presque tous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select table_name from dict where table_name like 'DBA_HIST%SQL%' ;

  3. #3
    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
    L'idéal sera d'activer la trace SQL pour les traitements où l'utilisateur a l'impression que "c'est lent". Sinon utilisez StatsPack ou AWR si votre client possède la licence pour tracer si possible la session sinon la base. Il n'est pas nécessaire tracer 24 heures mais plutôt la période ou les utilisateurs travaillent et ils sont le ressenti de "lenteur".

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    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 : 2 005
    Par défaut
    Bon ben finalement on va utiliser AWR; c'est un peu lourd à lire mais c'est l'outil du client dont acte!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/03/2013, 12h06
  2. Réponses: 2
    Dernier message: 30/11/2010, 23h22
  3. Les résultats d'un Select sur une table
    Par naznaz dans le forum Bases de données
    Réponses: 1
    Dernier message: 04/11/2007, 11h58
  4. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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