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 :

Chainage des blocs & deallocate: comment ils fonctionnen


Sujet :

Oracle

  1. #1
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut Chainage des blocs & deallocate: comment ils fonctionnen
    Salut,

    Je voudrais savoir

    1)
    a) Si j'ai une ligne de données qui se trouve sur deux (2)
    blocs de données différents b1 et b2 chainés. Aprés un update, si la
    ligne peut maintenant tenir dans un bloc est ce que les données vont
    remonter au bloc b1, et b2 restera vide?
    b) Si oui, lors d'une prochaine insertion, le bloc b2 pourra t'il être
    utilisé ou alors l'insertion va se faire au niveau du high-water mark?

    3)
    a) Est ce que deallocate me permet d'organiser mon segment de telle sorte que j'ai d'abord des
    extents occupés puis des extents non occupés?
    b) si oui, les extents non occupés sont ils supprimés? et que devient le niveau de flottaison?

    Merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    1.a : à ma connaissance, seul un rebuild d'index ou une recréation de table permet de "déchainer" une ligne
    b. quand un bloc est vidé, il est réutilisable... (en fait, déplacer les données )

    3 (il n'y a pas 2 )a : non, deallocate permet seulement de libérer les extents vides en vue de réduire le tablespace par exemple
    En aucun cas, les données sont déplacées dans les blocs
    b. Comme le dit Tom Kyte : quand il y a une inondation, le niveau de l'eau est marqué sur le mur... à moins de casser le mur jusqu'au niveau de l'eau ou reconstruire la maison, la marque sera toujours au même niveau

    Donc, seul TRUNCATE, MOVE ou DROP/CREATE permet d'abaisser la HWM

    J'espère ne pas avoir raconté de bétise

    Merci de me corriger si c'est le cas

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    une précision importante : http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/optimops.htm#44948

    La HWM ne sert que d'indicateur à Oracle pour savoir quand arrêter un FULL SCAN. Ca n'a donc aucun rapport avec des problèmatiques physiques de stockage

    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/b_deprec.htm#635291

  4. #4
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Merci,
    Je crois que c'est clair maintenant. J'en profite, si je comprends bien la différence entre DEALLOCATE et COALESCE est que deallocate supprime les extents vides mais le second fusionne juste les extents vides contigus mais les extents restent?

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est exactement ça, le COALESCE n'a d'ailleurs plus d'intérêt quand DICTIONNARY MANAGED où le nombre d'extents pouvait dégrader les performances alors qu'en LOCALLY MANAGED ça n'a plus aucune importance

  6. #6
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Salut,
    Orafrance a dit:

    c'est exactement ça, le COALESCE n'a d'ailleurs plus d'intérêt quand DICTIONNARY MANAGED où le nombre d'extents pouvait dégrader les performances alors qu'en LOCALLY MANAGED ça n'a plus aucune importance
    Je m'excuse mais j'ai pas bien compris ce que vous vouliez me dire.

    Merci

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    simplement que COALESCE réduit le nombre d'extents (10 extents de 10ko libres contigus 1 extent de 100 ko) ce qui n'a d'intérêt que si le table space est géré par le dictionnaire

  8. #8
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Merci,
    Mon problème est résolu.

  9. #9
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    quel était le problème ? Et la solution choisie ?

  10. #10
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Salut,

    En fait mon problème était de savoir comment réorganiser ma table pour qu'il n'y ait plus de trous (après trop de delete par exemple), comment faire pour que les blocs qui constituent une même ligne soient contigus. Pour cela j'ai d'abord voulu savoir comment les blocs sont chaînés et s'il se déchainaient tous seuls.

    Dans votre article (le stockage de données) vous avez parlé de coalesce mais pas de deallocate (si je ne trompe pas). coalesce fusionne les extends contigus vides et je me demandais pourquoi ils restaient dans le tablespace alors qu'ils étaient vides, heureusement vous m'avez dit que deallocate libère les extends vides.

    Maintenant je cherche la syntaxe d'un rebuild index si vous avez un lien se serait cool.
    Dites, Move et truncate quelle est la différence?
    Merci

  11. #11
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    MOVE déplace la table et son contenu dans un autre tablespace alors que TRUNCATE vide la table... les deux commandes permettent de réorganiser les extents

    Pour le rebuild : http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_18a.htm#2086990

    Quand à la question des blocs contigus... c'est quasiment impossible d'avoir tous les blocs contigus puisque la fragmentation du disque est une problèmatique systéme et non Oracle et dans une baie SAN en particulier en STRIPPING les chances que les blocs soient contigus sont très proche de 0

    Il faut arrêter de se casser la tête avec la fragmentation , cela ne pose quasiment plus de problème de performance et l'espace disque économisé ne couvre peut-être même pas le coup d'une réorganisation

  12. #12
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Est ce que vous essayez de me dire que si j'ai par exemple une table dans laquelle j'ai éffectué trop de suppressions c'est pas bien grave?

  13. #13
    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
    A priori, non !
    Parce que même si vous arrivez à limiter la fragmentation Oracle (en termes d'extents alloués), rien ne vous dit qu'au niveau OS, les quelques extents qui resteront (ou le seul, on peut toujours rêver) seront physiquement implémentés de façon contigües....

    Par contre, un chainage de bloc important peut révèler un bloc trop petit, et ça, c'est plus gênant car là, c'est le fonctionnement même de l'optimizer qui est mis à mal...

    D'un autre côté, si votre table a eu une période de croissance frénétique et que maintenant, c'est non seulement terminé mais qu'en plus vous avez fait beaucoup de ménage, oui, il peut être utile de vouloir faire de la place.

  14. #14
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Merci

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

Discussions similaires

  1. Comment créer des blocs non basés et des blocs basés
    Par sghiri_alla_eddine dans le forum Forms
    Réponses: 1
    Dernier message: 10/05/2012, 09h09
  2. Réponses: 0
    Dernier message: 11/07/2011, 11h47
  3. débutant un css, comment aligner et centrer des blocs
    Par thor76160 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 13/10/2010, 16h29
  4. comment deplacer des blocs css
    Par mexicanino dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/06/2009, 16h00
  5. Comment positionner des blocs fixed dans un autre bloc global ?
    Par jalex-jalex dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 08/10/2008, 06h21

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