Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 16h04   #1
Nouveau Membre du Club
 
Inscription : juillet 2007
Messages : 87
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 87
Points : 29
Points : 29
Par défaut [10g] Index et PCT_USED

Bonjour,

Je reprends un post sans réponse d'un autre fil car le "problème" est de nouveau présent dans ma base :
Citation:
Envoyé par korian Voir le message
Après analyse de l'index, j'obtiens ce resultat :
Code :
1
2
3
4
5
SYS@SQL> SELECT PCT_USED FROM INDEX_STATS WHERE NAME = 'SYS_IL0000009305C00070$$';
 
  PCT_USED
----------
       103
je croyais que ce chiffre était un %. Comment peut il être supérieur à 100 ?
J'ai fait une analyse plus globale de ma base et j'ai plusieurs PCT_USED supérieur à 100
Comment est ce possible ? et que cela veut il dire ?

Merci d'avance pour vos réponses.

Dans la littérature trouvée sur internet, on parle de PCT_USED (et de PCT_FREE) mais tantot c'est une valeur visée et tantot une valeur réelle.
J'avoue que je m'y perds un peu

Quelqu'un aurait la grande amabilité d'éclairer un peu ma lanterne svp ?
Merci.
korian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 15h58   #2
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 109
Points : 33
Points : 33
Et si tu rebuild et re-analyse seuelement ton index ?

Que renvoie ta requête ?

Peut - être faudrait -il aussi faire appel à coalescence pour que certains noeuds du B-tree soit mis en commun ?...
Moostiq est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 09/11/2011, 17h00   #3
Rédacteur
 
Inscription : décembre 2002
Messages : 2 388
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 388
Points : 3 275
Points : 3 275
D'après la doc, PCT_USED dans INDEX_STATS représente le pourcentage d'espace utilisé dans l'index. Il est logique effectivement qu'il ne dépasse pas 100%, et je n'ai pas d'explication pour le phénomène que vous observez.

Ne pas confondre avec l'attribut PCT_USED que vous pouvez trouver dans DBA_TABLES (et n'existe pas pour les index). Celui-ci représente le pourcentage de remplissage en dessous duquel un bloc sera candidat pour de nouvelles insertions, et n'a de sens que pour les tablespaces gérés à l'ancienne : SEGMENT_SPACE_MANAGEMENT=MANUAL.

L'exemple que vous citez concerne un index LOB (son nom commence par SYS_IL0). Est-ce aussi le cas de tous ceux qui ont un PCT_USED supérieur à 100 ?
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 14h15   #4
Membre Expert
 
Avatar de pachot
 
Homme Franck Pachot
DBA Oracle
Inscription : novembre 2007
Messages : 706
Détails du profil
Informations personnelles :
Nom : Homme Franck Pachot
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : DBA Oracle
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 706
Points : 1 645
Points : 1 645
Bonjour,

Ici PCT_USED est la mesure de l'espace utilisé. Différent de PCT_USED du create table qui est le seuil d'utilisation pour accepter de nouveaux inserts quand on est en freelist. Pour les index, il n'a a pas cette notion puisque chaque valeur a sa place: on a pas a l'accepter ou pas.

Les index des lobs sont toujours pleins à 100%. il n y' a pas à s'en soucier.

Mais c'est vrai que d'un point de vue mathématique, c'est curieux alors j'ai regardé la définition de la vue INDEX_STATS:

Code :
1
2
3
4
5
6
7
8
9
10
11
        kdxstlbk        lf_blks,
        kdxstlln        lf_rows_len,
        kdxstlub        lf_blk_len,
        kdxstbbk        br_blks,
        kdxstbln        br_rows_len,
        kdxstbub        br_blk_len,
        kdxstlbk*kdxstlub+kdxstbbk*kdxstbub     btree_space,
        kdxstlln+kdxstbln+kdxstpln                    used_space,
        ceil(((kdxstlln+kdxstbln+kdxstpln)*100)/
        (kdxstlbk*kdxstlub+kdxstbbk*kdxstbub))
                                                pct_used,
Donc PCT_USED est le ratio entre:
- l'espace utilisé: taille des lignes des branches et des feuilles + taille des préfixes (index compressés)
- l'espace total: espace utilisable dans les branches et feuilles

... ne devrait pas dépasser 100% bien sûr.

Est-ce que tu peux montrer la totalité de INDEX_STATS pour cet index:

Code :
SELECT used space,lf_rows_len,br_rows_len,pre_rows_len,btree_space,lf_blks,lf_blk_len+br_blks,br_blk_len,pct_used,lf_rows,br_rows,pre_rows FROM index_stat;
Merci,
Franck.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
pachot est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h50.


 
 
 
 
Partenaires

Hébergement Web