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

Oracle Discussion :

Nombre de requêtes par table par heure


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Nombre de requêtes par table par heure
    Bonsoir,

    En oracle 10g sur AIX sans statpack comment calculer le nombre de requete par table et par heure
    Merci

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    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 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Je ne suis pas convaincu que le nombre de requêtes par objet soit une métrique très pertinente, tant 2 requêtes peuvent être différentes. (C'est comme comptabiliser à la fois les éléphants et les fourmis, en considérant que ce sont tous des êtres vivants).

    Ma première idée serait plutôt d'aller piocher dans V$SEGSTAT.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Nombre de requete par heure
    Bonjour,

    Je précise ma question: j'aimerais connaitre par tranche horaire, le nombre de requetes passées et si possible cibler les objets les plus sollicités
    Merci

  4. #4
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Pas de stratspack certes, mais avez vous une licence vous autorisant à utiliser AWR ? Sinon, qui vous interdit l'installation de statspack ?

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par debdba Voir le message
    Bonjour,

    Je précise ma question: j'aimerais connaitre par tranche horaire, le nombre de requetes passées et si possible cibler les objets les plus sollicités
    Merci
    Il me semble que vous avez un problème de performance, que vous pensez avoir trouvé la raison mais que vous ne savez pas comment s’y prendre pour le confirmer et, donc, vous venez ici pour demander de l’aide sur le ''comment faire pour trouver la confirmation de ce que vous pensez être le problème’’. Ai-je raison?

    Dans l'affirmative, Ce n’est vraiment pas, à mon humble avis, la méthode à suivre. Surtout lorsque vous voulez de l’aide. Posez plutôt clairement votre problème avec tous les détails possibles puis suggérez votre piste et laissez les autres apporter leurs contributions.

    Ceci dit, si vous avez les licences nécessaires à cela, la réponse stricte à votre question se trouve dans le rapport AWR (Automatic Workload Repository) qui par défaut collecte les informations de performance chaque heure. Il suffit alors de consulter dans ce rapport les parties suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     SQL ordered by Execution (by Logical read, physical read, etc…)
    et la partie Segment By pour les objets les plus sollicités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    1.Segments by Logical Reads 
    2.Segments by Physical Reads 
    3.Segments by Physical Read Requests 
    4.Segments by UnOptimized Reads 
    5.Segments by Optimized Reads 
    6.Segments by Direct Physical Reads 
    7.Segments by Physical Writes 
    8.Segments by Physical Write Requests 
    9.Segments by Direct Physical Writes 
    10.Segments by Table Scans 
    11.Segments by DB Blocks Changes 
    12.Segments by Row Lock Waits 
    13.Segments by ITL Waits 
    15.Segments by Buffer Busy Waits

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Nombre de requetes par heure
    Non pas vraiment aucun problème de perf, mais simplement mettre en évidence les pics d'utilisation de la base et plus précisement de certaines requetes et table.

    En questionnant la v$sqlarea j'arrive à avoir cette information en prenant en compte la colonne exécution et sysdate.
    A présent il va falloir que j'isole le nombre par heure et non pas le cumul depuis le début de l'ouverture de la base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sql_text, sysdate, executions from v$sqlarea where module like '%****%' ;
    S'il y a mieux?????

    merci

  7. #7
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par debdba Voir le message
    Non pas vraiment aucun problème de perf, mais simplement mettre en évidence les pics d'utilisation de la base et plus précisement de certaines requetes et table.

    En questionnant la v$sqlarea j'arrive à avoir cette information en prenant en compte la colonne exécution et sysdate.
    A présent il va falloir que j'isole le nombre par heure et non pas le cumul depuis le début de l'ouverture de la base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sql_text, sysdate, executions from v$sqlarea where module like '%****%' ;
    S'il y a mieux?????

    merci
    Attention!

    plus le nombre d'executions (dans v$sql ou v$sqlarea) est grand mieux c'est. Il faut plutôt dans votre cas vous concentrer sur les sql suivants

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from v$sqlarea
    where executions <=2;  -- 1 ou 2
    S'il y en a, c'est que votre application n'utilise pas les ''bind variables'' qui dans ce cas (surtout dans un environnement OLTP) est catastrophique

  8. #8
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par debdba Voir le message
    ...S'il y a mieux?????

    merci
    Installez et utilisez statpack si pas de license pour AWR/ADDM.

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    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 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Citation Envoyé par Mohamed.Houri Voir le message
    ...plus le nombre d'executions (dans v$sql ou v$sqlarea) est grand mieux c'est...
    Je comprends votre intention, mais la formulation est franchement excessive.

    Moi je dirais plutôt qu'il faut ouvrir l'oeil face aux requêtes
    1. qui ne sont exécutées qu'une fois
    2. qui sont exécutées un très grand nombre de fois


    Pour le premier cas, on peut utiliser cette excellente requête, fournie par Pachot, pour détecter le manque éventuel de variables de liaison : http://www.developpez.net/forums/d80...h/#post4629867

    Pour le second, il faut se demander s'il est justifié qu'une même requête s'exécute des millions de fois. Ca peut être le signe d'une exécution procédurale (traitement ligne par ligne) pouvant être, éventuellement, remplacée par un traitement ensembliste.

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Je comprends votre intention, mais la formulation est franchement excessive.

    Moi je dirais plutôt qu'il faut ouvrir l'oeil face aux requêtes
    1. qui ne sont exécutées qu'une fois
    2. qui sont exécutées un très grand nombre de fois


    Pour le premier cas, on peut utiliser cette excellente requête, fournie par Pachot, pour détecter le manque éventuel de variables de liaison : http://www.developpez.net/forums/d80...h/#post4629867

    Pour le second, il faut se demander s'il est justifié qu'une même requête s'exécute des millions de fois. Ca peut être le signe d'une exécution procédurale (traitement ligne par ligne) pouvant être, éventuellement, remplacée par un traitement ensembliste.
    Oui vous avez raison. Je me suis plus servi de v$sql pour traquer les sql executés une seule fois que l'inverse.

    bind variables,shared pool and cursor sharing parameter

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Nombre de requetes par heure
    L'idée étant de mettre en évidence les moments de la journée où il y a le plus de trafic en base et sur quel objet se concentre ces trafics.
    Il me semblait judicieux d'utiliser le nombre d'exécutions, car c'est la seule notion que j'ai trouvé pour mettre l'accent sur la charge par période.

    Il n'est pas question de performance ni de blocage mais de cibler les moments de la journée les plus chargés.

    J'avais aussi pensé à la vue v$sysstat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name, value from v$sysstat where name = 'user commits';
    , mais je n'ai pas la requete associée pour connaitre l'objet accédé.

Discussions similaires

  1. [MCD] Nombre d'heures travaillées par mois par année par compte
    Par Tidus159 dans le forum Schéma
    Réponses: 9
    Dernier message: 11/03/2011, 12h20
  2. [Designer V5-V6] Remplacement table par table dérivée
    Par dvdavid2009 dans le forum Débuter
    Réponses: 17
    Dernier message: 27/08/2009, 09h30
  3. Réponses: 8
    Dernier message: 05/06/2009, 17h07
  4. Nombre maximum de colonne conseiller par table
    Par Analfabete dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 20/01/2007, 15h18
  5. Nombre de requêtes par table
    Par nicoaix dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/07/2006, 11h50

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