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 :

block de données


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Par défaut block de données
    Version : Oracle9i
    OS Debian

    Bonjour,

    une question me tarrode concernant la gestion de l'espace dans les blocks de données. J'ai lu dans la doc Oracle que la somme des valeurs de PCTFREE et PCTUSED ne devait pas dépasser 100% (logique).

    Si je ne me trompe pas, PCTUSED est utilisés pour les insertions, et PCTFREE pour les mise a jour des lignes contenues dans PCTUSED. Dans la doc, Oracle montre quelques exemples pour initialiser les valeurs de ces 2 paramètres comme tel :

    Exemple 1 : PCTFREE 10 et PCTUSED 40
    Exemple 2 : PCTFREE 20 et PCTUSED 60

    Ce que je ne saisi pas c'est pourquoi la somme des valeurs des 2 paramètres n'est pas egale a 100% ? cela veut il dire qu'il y a dans le bloc de l'espace non alloué donc du gaspillage ?

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Bonjour,

    la somme de PCTFREE et PCTUSED peut tres bien être supérieure à 100% :

    PCTFREE est le pct d'espace libre d'un bloc réservé aux updates futurs des lignes du bloc. Quand le pct d'espace libre devient inférieur à PCTFREE le bloc est supprimé de la freelist.

    PCTUSED est le pct d'utilisation d'un bloc en dessous duquel un bloc est placé sur la freelist.

    Quand PCTFREE = 10 et PCUSED = 40 : quand il reste moins de 10% d'espace libre, le bloc est supprimé de la freelist, il n'est plus disponible pour les insertions mais on peut faire des updates.
    Quand le pourcentage d'utilisation du bloc passera en dessous de 40%, c'est à dire quand le pct d'espace libre repassera au dessus de 60%, le bloc sera placé sur les freelists, et le bloc pourra supporter à nouveau des insertions.

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Par défaut
    Merci pour votre réponse mais je ne vous suis pas très bien

    excuse mon impertinence mais je crois que vous vous trompez :

    Je cite Oracle (Administrator's Guide disponible en téléchargement sur le site officiel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    The sum of PCTFREE and PCTUSED must be equal to or less than 100.
    If the sum equals 100, then Oracle attempts to keep no more than PCTFREE free space, and processing costs are highest.
    The smaller the difference between 100 and the sum of PCTFREE and PCTUSED (as in PCTUSED of 75, PCTFREE of 20), the more efficient space usage is, at some performance cost.
    Si je suis leur raisonnement, dans l'exemple PCTFREE 10 PCTUSED 40, on perd de l'espace mais on y gagne en performance. Par ailleurs, on ne peut pas dépasser les 100% en ajoutant la somme des 2 paramètres...

    Moi ce que je j'en retiens c'est que 10% de l'espace total du bloc est réservé aux updates, 40% aux insertions, n% pour l'entete du bloc et le reste est inutilisé

    Help je suis perdu la

    merci lalystar pour ta réponse

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    En Oracle 9i, un tablespace en mode locally managed tablespaces (LMT) est créé par défaut en SEGMENT SPACE MANAGEMENT MANUAL, càd que l'espace libre dans les blocs est géré avec des free lists et PCTFREE/PCTUSED.
    Par contre, si le tablespace en mode LMT est crée avec l'option SEGMENT SPACE MANAGEMENT AUTO, alors l'espace libre dans les blocs n'est plus géré avec les freelists mais avec des bitmpas et PCTFREE/ PCTUSED ne servent plus à rien.

    Oracle recommande d'utiliser les tablespaces en mode EXTENT MANAGEMENT LOCAL (LMT) plutôt que EXTENT MANAGEMENT DICTIONARY (DMT) et l'option SEGMENT SPACE MANAGEMENT AUTO. D'ailleurs pour 10g, SEGMENT SPACE MANAGEMENT AUTO est l'option par défaut.


    Pour Oracle 9, voir: http://download-west.oracle.com/docs...aces.htm#19132
    Pour Oracle 10, voir: http://download-uk.oracle.com/docs/c...htm#sthref1141

  5. #5
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Citation Envoyé par coco-sup
    Moi ce que je j'en retiens c'est que 10% de l'espace total du bloc est réservé aux updates, 40% aux insertions, n% pour l'entete du bloc et le reste est inutilisé
    Non, avec un PCTFREE=10, cela signifie qu'Oracle se garde 10% du bloc pour les prochaines opérations (donc, si les données ne varient pas 10% de gaspi°.

    PCTUSED=40 cela signifie que tout bloc rempli à moins de 60% est utilisable pour de nouvelles opérations. Plus le PCTUSED est bas, moins on perd de bloc, mais plus les blocs sont fragmentés.

    Mais il est clair que c'est plus trop la peine de se casser la tête avec ça depuis les SEGMENT SPACE MANAGEMENT AUTO (10g).

    Donc, si j'ai un bloc de 10k (cas impossible mais plus simple pour calculer les pourcentage ! ).
    PCTFREE = 10 (=> 1k)
    PCTUSED=40 (=> 4k)

    Si j'insère 8k de données : ça rentre dans 10-PCTFREE => 1 seul bloc utilisé, 2 k libres.
    2k libres < PCTUSED donc mon bloc est considéré comme plein. Toutes les prochaines insertions se feront dans un autre bloc.
    Maintenant, j'update ma première ligne et je consomme 2k de plus : no problem, la place était gardée.
    Je rajoute des données : bloc plein => utilisation d'un nouveau bloc => chainage de lignes => pas bon pour les perfs.
    Maintenant, j'update ma première ligne et je libère de l'espace jusqu'à avoir un espace libre de 5k (donc > PCTUSED) ; le bloc est de nouveau utilisable mais j'ai toujours des données dans l'autre bloc.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Par défaut
    Merci beaucoup LeoAnderson !!!

    C'est on ne peut plus clair !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/04/2012, 14h03
  2. Réponses: 2
    Dernier message: 17/10/2008, 15h43
  3. Problème Block de donnée
    Par Idsaw dans le forum Forms
    Réponses: 1
    Dernier message: 05/05/2008, 13h01
  4. Block de données basé
    Par saidms dans le forum Forms
    Réponses: 5
    Dernier message: 29/04/2008, 11h22
  5. Raffrachir BLOCK de donnée
    Par Idsaw dans le forum Forms
    Réponses: 3
    Dernier message: 27/03/2008, 18h53

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