Vous n'êtes pas identifié(e).
Bonjour,
Je suis en 9.1 côté serveur. et je cherche à comparer les 2 types numeric et numeric(p,s)
Ce que j'ai déjà pu remarquer :
inconvénient du numeric(p,s) :
Si je mets une colonne en type numeric(3,1) par exemple, alors le système affiche systématiquement le chiffre après la virgule :
si je saisis 5 il va afficher 5.0 , ce qui pour moi n'est pas très beau, mais aussi ne veut pas dire la même chose
(on aurait mesuré avec une précision de 1)
autre inconvénient du numeric(p,s) :
j'ai une table matable avec un champ monchamp en numeric , dont les valeurs vont de -99.9 à 99.9 avec au max 1 chiffre après la virgule.
Pour ce champ je voudrais trouver un mode de stockage plus économique en place disque.
Et bien en faisant :
SELECT DISTINCT pg_column_size(monchamp) , pg_column_size(monchamp::numeric(3,1)) FROM matable ;
la 2ème colonne de la requête est toujours plus élevée que la 1ère.
Du coup je ne vois pas comment gagner de la place de stockage pour mon champ
Dernière modification par jeanphi45 (01/07/2014 11:04:30)
Hors ligne
J'avais écrit que pg_column_size(monchamp) <= pg_column_size(monchamp::numeric(3,1)).
Mais ...
Si je crée une nouvelle table avec un champ numeric(3,1) et que je copie le champ numeric de la première table dans la deuxième , en le castant en numeric(3,1) , alors pg_column_size du champ numeric(3,1) a la même valeur que pg_column_size du champ numeric.
Donc si on prend la fonction pg_column_size comme référence , on peut dire que numeric et numeric(3,1) occupent la même taille disque.
PS :
pour les 2 tables j'ai ensuite fait un vaccum + analyse + full et j'ai les mêmes résultats pour la fonction pg_column_size
Dernière modification par jeanphi45 (02/07/2014 10:54:20)
Hors ligne