Modifier une colonne varchar
Posted in 2003
Topics: Data Types & Schema Design, Migration, Import/Export & Data Conversion
Translated from English by DrWatson — View original
Bonjour à tous, Dans le cadre d'une tâche de migration de schéma de table, j'ai déchargé les données d'une table, supprimé la table, puis recréé la table en modifiant certaines colonnes de varchar(10) en varchar(255), avant de recharger les données d'origine dans la nouvelle table. Nous avons constaté que l'espace utilisé par cette table est passé de 1 Go à 1,5 Go. Quelqu'un sait-il pourquoi ? Merci, Mark
Mark a écrit : > Bonjour à tous, > > Dans le cadre d'une tâche de migration de schéma de table, j'ai déchargé > les données d'une table, supprimé la table puis recréé celle-ci en > modifiant certaines colonnes de varchar(10) en varchar(255), avant de > recharger les données d'origine dans la nouvelle table. > > Nous avons constaté que l'espace utilisé par cette table est passé de > 1 Go à 1,5 Go. > > Quelqu'un sait-il pourquoi ? Difficile à dire avec si peu d'éléments. Peut-être que la taille minimale de la colonne est différente, ou quelque chose de ce genre ? -- "C'est pas parce qu'on n'a rien à dire qu'il faut fermer sa gueule" - Coluche
Le jeu. 18 déc. 2003 01:10:06 +0800, « Mark » <kbl@net-yan.com> a écrit : >Bonjour à tous, > >Lors d'une opération de migration de schéma de table, j'ai déchargé les données d'une table, supprimé la >table, puis recréé la table en modifiant certaines colonnes de varchar(10) en >varchar(255), avant de recharger les données d'origine dans la nouvelle table. > >Nous avons constaté que l'espace utilisé par cette table est passé de 1 Go à 1,5 Go. > >Quelqu'un sait-il pourquoi ? > Les schémas avant et après sont-ils identiques ? Depuis la version 9.21 <?>, Informix crée tous les index en mode détaché (detached).
« Mark » <kbl@net-yan.com> a écrit dans le message news:<brq3mc$243e$1@news.hgc.com.hk> :
> Bonjour à tous,
>
> Lors d'une tâche de migration de schéma de table, j'ai déchargé les données d'une table, supprimé la
> table et recréé la table en modifiant certaines colonnes de varchar(10) en
> varchar(255), puis rechargé les données d'origine dans la nouvelle table.
>
> Nous avons constaté que l'espace utilisé pour cette table est passé de 1 Go à 1,5 Go.
>
> Quelqu'un sait-il pourquoi ?
Comment avez-vous mesuré l'espace occupé par la table ? Si vous vérifiez simplement
npused et que vous avez également chargé la table dans un dbspace vide, il est alors
possible que, lors de l'ajout des extents, des extents complets aient été
alloués simplement parce que l'espace était par ailleurs vide.
Lorsqu'un nouvel extent est alloué, si le dbspace existant ne dispose pas
actuellement de suffisamment d'espace contigu pour allouer un extent complet, nous
allouons malgré tout ce que nous pouvons. L'ordre d'allocation est le suivant : 1)
l'espace vide situé après le dernier extent alloué, 2) la taille du prochain extent,
3) tout ce que nous pouvons obtenir. Donc, si l'espace est disponible pour une
allocation d'extent complet, nous aurions alloué cet espace.
Il pourrait être utile d'inclure le oncheck -pe of du dbspace pour se faire
une idée de la façon dont l'espace a été alloué et comprendre pourquoi.
>
> Merci,
> Mark