Yong,
j'ai effectivement publié le nouveau plan d'exécution (ci dessus)
en fait, je me base par rapport au temps écoulé
Yong,
j'ai effectivement publié le nouveau plan d'exécution (ci dessus)
en fait, je me base par rapport au temps écoulé
le dernier plan d'execution
Plan d'exécution
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=HINT: ALL_ROWS (Cost=2386 Card=64
39 Bytes=1159020)
1 0 SORT* (ORDER BY) (Cost=2386 Card=6439 Bytes=1159020) :Q147438
0001
2 1 TABLE ACCESS* (FULL) OF 'TD_ETABLISSEMENTS' (Cost=2324 C :Q147438
ard=6439 Bytes=1159020) 0000
1 PARALLEL_TO_SERIAL SELECT A1.C0 C0,A1.C1 C1,A1.C2 C2,A1.C3 C3,A
1.C4 C4,A1.C5 C5,A1.C6 C6,A1.C7 C7,A
2 PARALLEL_TO_PARALLEL SELECT /*+ NO_EXPAND ROWID(A1) */ NLSSORT(A1
."ENSEIGNE") C0,A1."CODE_POSTAL" C1,
Statistiques
----------------------------------------------------------
20 recursive calls
4 db block gets
61253 consistent gets
61233 physical reads
864 redo size
13163 bytes sent via SQL*Net to client
717 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
91 rows processed
effectivement mon consistents gets > 56891
Un histogramme sur la table td_etablissements pourrait aider :
Si les colonnes ETAT_ETAB, CODE_TP et DRA sont indexées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec dbms_gather_table_stats('schéma_propriétaire','TD_ETABLISSEMENT',estimate_percent=>100,method_opt=>'for all indexed columns size auto',granularity=>'ALL',cascade=>true);
Je continue à trouver cette méthodologie d’optimisation que je vais la résumer ici, vraiment bizarre:
Bref, pour optimiser un traitement ou une requête SQL (sauf quelques cas banales) il est toujours conseillé de commencer par s’assurer que les statistiques sont à jour. Ensuite faite une trace SQL étendue pour arriver à comprendre où le temps passe. Une fois que vous est arrivé à comprendre pourquoi les choses se passent mal, vous pouvez commencer à envisager une des multiples solutions disponibles pour optimiser : création/modification des indexes, changement dans la manière de collecte des statistiques, utilisation des hints SQL, modifications de la requête SQL, modification des paramètres de la session (comme disait Tom Kyte parfois on peut « optimiser » en activant la trace SQL), etc.A : J’ai un problème de performance avec cette requête
X : Change ça, qu’est-ce que ça donne ? Pourquoi telle truc ?
A : Je ne sais pas pourquoi. Mais si je change telle autre truc c’est super !
Y : Et si t’essaye ça, que est-ce que ça donne ?
Z : Est ce-que les statistiques sont à jour ?
A : Je ne sais pas, je ne suis pas DBA
Etc.
[QUOTE=mnitu;4960127]Je continue à trouver cette méthodologie d’optimisation que je vais la résumer ici, vraiment bizarre:
MNITU, veuillez excuser mon manque d'expérience dans le domaine
Il faut lire exec dbms_stats.gather_table_stats au lieu de l'ignominie que j'ai tapée.
Salut,
Juste une petite remarque sur la condition is null et l'index.
http://www.dba-oracle.com/oracle_tip...lls_values.htm
Cordialement Salim.
Publications: http://schelabi.developpez.com/
Bonjour Salim,
Ici ce sont des index bitmaps, qui indexent les NULL.
Et cet article n'est pas très juste... Pour indexer les NULL avec un index normal (non bitmap) il suffit de faire un index sur la colonne et sur une constante, par exemple: create index ... on ... ( champnull , 0 ) car seules les entrées entièrement nulles ne sont pas indexées.
Cordialement,
Franck.
Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot
Génial, je continue à apprendre
merci aux internautes et aux rédacteurs Developpez.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager