Bonjour,
J'aimerai savoir si un move tablespace d'une table permet d'enlever le chainage des lignes ?
MerciCode:alter table TOTO move tablespace
Version imprimable
Bonjour,
J'aimerai savoir si un move tablespace d'une table permet d'enlever le chainage des lignes ?
MerciCode:alter table TOTO move tablespace
Quoi que vous fassiez, si une ligne ne peut pas être contenue dans un bloc unique, elle ne peut pas !
A moins de la déplacer dans un tablespace muni d'un block size suffisant.
Ce n'est pas mon cas. C'est une table qui a beaucoup de mise à jour et maintenant beaucoup de lignes chainées.Citation:
Envoyé par SheikYerbouti
Est-ce que le move tablespace enlevera le chaînage ?
Ensuite il faudra reconstruire les indexes...
le chainage n'est pas grave, ce qui est plus grave c'est la migration de lignes.
Chainage = ligne dans plusieurs blocs
Migration = ligne déplacée dans un autre bloc avec un pointeur dans le bloc d'origine :?
Cela oblige ORACLE a rechercher une ligne dans plusieurs blocs ! Si on diminue le chainage, on diminue le nombre de lecture physique sur disque.Citation:
Envoyé par Fred_D
Est-ce que le move tablespace enlevera le chaînage ?
Fred a dit :
Chainage = ligne dans plusieurs blocs
Migration = ligne déplacée dans un autre bloc avec un pointeur dans le bloc d'origine.
Pourriez vous m'expliquer svp dans quel cas une migration ait lieu.
Mircé.
non, il enlévera les migrations ;)Citation:
Envoyé par PhPeltier
la migration arrive lorsqu'on fait un update qui permet de faire tenir la ligne dans un bloc mais que le bloc dans lequel est la ligne est trop petit. Oracle déplace les données dans un bloc libre et le compléte alors avec l'update mais laisse un pointeur dans le bloc d'origine pour ne pas modifier le ROWID.
Que les spécialistes me corrigent si je divague ;)
Franchement je comprend pas votre explication de la migration. 8O
Veuillez expliquer davantage.
Et merci.
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c03block.htm#15915
imaginons cette configuration :
|| :arrow: un bloc
. :arrow: espace libre
A :arrow: ligne A
R :arrow: Rowid
|AAA...|BB....|.....|
Si je fais un update de A qui est trop gros, si je fais rien j'ai :
|AAA...|BB....|AAAA.|
La migration donnerait :
|R...|BB....|AAAAA|A....|
Le problème c'est que si ça arrive souvent, on peut avoir 3/4 voir plus de migration encore :
|R...|BB....|R.....|CCC...|AAAAA|A....| :arrow: ici c'est migré ET chainé : copié dans un autre bloc (migration) et stocké dans plusieurs blocs (chainage)
Est-ce plus clair ?
J'espère surtout ne pas raconter de bétise :oops:
Bon ca va plus ou moins.