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 :

analyse stats et plans d'execution


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Par défaut analyse stats et plans d'execution
    Bonjour,

    Je lance une requête sur une seule table sur deux environnements différents (PROD et dev). En prod, j'ai environ 28.000.000 de lignes. En dev 23.000.000 de lignes. Les utilisateurs se plaignent des temps de réponse en production sur cette requête (30 minutes au lieu de 5 en dev).

    Les plans d'exécutions semblent identiques :
    DEV
    --------------------------------------------------------------------------------------------------------------------------
    | Id | Operation | Name | Rows | Bytes | Cost |
    --------------------------------------------------------------------------------------------------------------------------
    | 0 | SELECT STATEMENT | | 5784 | 2095K| 4427 |
    | 1 | SORT ORDER BY | | 5784 | 2095K| 4427 |
    | 2 | TABLE ACCESS BY INDEX ROWID | F0911 | 5784 | 2095K| 3966 |
    | 3 | INDEX SKIP SCAN | F0911_25 | 3879 | | 1972 |
    --------------------------------------------------------------------------------------------------------------------------
    PROD :
    --------------------------------------------------------------------------------------------------------------------------
    | Id | Operation | Name | Rows | Bytes | Cost |
    --------------------------------------------------------------------------------------------------------------------------
    | 0 | SELECT STATEMENT | | 45 | 14490 | 7158 |
    | 1 | SORT ORDER BY | | 45 | 14490 | 7158 |
    | 2 | TABLE ACCESS BY INDEX ROWID | F0911 | 45 | 14490 | 7157 |
    | 3 | INDEX SKIP SCAN | F0911_11 | 304 | | 7104 |
    --------------------------------------------------------------------------------------------------------------------------
    Au niveau des statistiques :
    Dev :
    Statistics
    ----------------------------------------------------------
    1364 recursive calls
    0 db block gets
    17421 consistent gets
    7931 physical reads
    116 redo size
    1642083 bytes sent via SQL*Net to client
    11345 bytes received via SQL*Net from client
    989 SQL*Net roundtrips to/from client
    54 sorts (memory)
    0 sorts (disk)
    14810 rows processed
    Prod :
    Statistics
    ----------------------------------------------------------
    118 recursive calls
    0 db block gets
    136045 consistent gets
    69860 physical reads
    116 redo size
    1583461 bytes sent via SQL*Net to client
    11345 bytes received via SQL*Net from client
    989 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    14810 rows processed
    Bien sûr les deux machines ne sont pas sollicitées de la même manière mais en même temps la machine de production est beaucoup plus puissante (SGA 10 Go en prod et 1.5 Go en dev pour vous donner une idée).

    Dans les résultats que je vous ai donné, voyez-vous des choses choquantes ? Avez-vous une autre piste de diagnostique que je pourrais effectuer ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Par défaut
    Bonjour,

    Effectivement le plan semble identique,mais en revanche.. en prod le nombre de consistent get et de lecture physique est sensiblement plus élevé.

    Est ce que la base de dev a été construite récemment avec un dum ou clonage de la base de production ?

    Une piste serait eventuellement un high water marke elevé en prod.
    On peut avoir une piste avec un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TABLE_NAME,BLOCKS,NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME='TABLE_CONCERNEE';
    Il faut voir également du coté du chainage (j'ai fait petit article sur le sujet):
    Détecter les lignes chainées :http://www.lao-dba.com/article-25457591.html
    Supprimer les lignes chainées:http://www.lao-dba.com/article-25517684.html

    Laurent

Discussions similaires

  1. Quand change le plan d'execution?
    Par kervoaz dans le forum Administration
    Réponses: 17
    Dernier message: 03/12/2007, 10h45
  2. Bind variables et plan d'execution
    Par Wurlitzer dans le forum Oracle
    Réponses: 6
    Dernier message: 26/02/2007, 14h04
  3. [Oracle 10.2] Plan d'execution fonction PL/SQL
    Par pegase06 dans le forum PL/SQL
    Réponses: 6
    Dernier message: 13/02/2007, 12h02
  4. Plans d'execution differents
    Par jajaCode dans le forum Oracle
    Réponses: 13
    Dernier message: 14/12/2006, 12h29
  5. plan d'execution
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/03/2006, 10h40

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