Re: type de donnée et

From: Pierre Didelon <pdidelon(at)cea(dot)fr>
To: Daniel Verite <daniel(at)manitou-mail(dot)org>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: type de donnée et
Date: 2005-10-13 13:40:06
Message-ID: 434E63B6.8010604@cea.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,
Merci pour ces infos (re-merci, le premier à eu lieu en off, hors liste)
qq commentaires et une question concernant les views,
pour éclaircir totalement ma compréhension des choses...

Daniel Verite wrote:

> Pierre Didelon wrote:
>
>
>>Si pour des besoins d'alignement mémoire et optimisation des transferts
>
> disques
>
>>lors des types différents se suivent et qu'ils pourraient ne pas être
>
> "alignés"
>
>>en mémoire y a t il introduction d'un remplissage pour réalignement?
>
>
> Oui. Il y a d'ailleurs une colonne typalign dans la table pg_type qui indique
> pour chaque type quel est le genre d'alignement à utiliser.
> Le nombre d'octets auquel ça correspond dépend de l'architecture sur laquelle le
> serveur tourne, c'est certainement une des raisons pour lesquelles les fichiers
> de données de PGDATA ne sont pas portables d'une archi à l'autre.
> En gros les lignes sont stockées sur disque telles qu'elles sont en mémoire.

Et elles sont enregistrées comme des data types particuliers dans la même table.
D'ou l'on peut déduire qu'un padding peut être introduit entre les lignes si
elles ne sont pas de taille adéquate.
Comme elles requièrent sans doute toutes un alignement sur une adresse de double,
8 octets, toutes les lignes ne faisant pas une longueur d'un multiple de 8 octets
sont réalignées sur la prochaine adresse de double.
Oui?
C'est moins drastique et pénalisant que le réalignement entre attributs d'une même
ligne, mais c'est bon à savoir ;-)
>
>
>>Y a t il alors une manière optimum de déclarer une table en fonction de
>
> l'ordre
>
>>des tailles des différents types de données?
>
>
> Oui certainement, par exemple une table avec des colonnes int/char/int/char/int
> devrait prendre plus d'espace que int/int/int/char/char
En est il de même pour les views... Sans doute oui! Mais comme elles ne sont pas
stockées de manière permanente, c'est moins crucial! Ca gaspille temporairement de
la mémoire, c'est tout!
Oui? Non?
>
> Il y avait une discussion récemment à ce sujet sur pgsql-general:
> http://archives.postgresql.org/pgsql-general/2005-07/msg00408.php
>
J'ai cherché dans la doc française (et anglaise mais comme la traduction est fidèle
et complète on retrouve les mêmes choses ;-) évidemment :-) ), et les seules infos
disponibles sur ce thème sont bien celles concernant la table système pg_type!
Je trouve ça un peu mince, et je pense qu'il serait bon d'ajouter un avertissement
dans la partie où est expliquée la création des tables Chap.5 et peut être dans la
partie sur les types Chap.8.
(cf. http://traduc.postgresqlfr.org/pgsql-8.0.3-fr/ddl.html /
http://traduc.postgresqlfr.org/pgsql-8.0.3-fr/datatype.html)
et dans la partie guide de référence sur le même sujet, Part.VI.I CREATE TABLE
(cf. http://traduc.postgresqlfr.org/pgsql-8.0.3-fr/sql-createtable.html)

Qu'en pensez vous?

Mais comme la version française est une traduction il faudrait dabord introduire ça
dans la version anglaise, non?
Est ce envisageable?

Cordialement,
--
Pierre
------------------------------------------------------------------
DIDELON :@: pdidelon_at_cea.fr CEA SACLAY - Service d'Astrophysique
------------------------------------------------------------------

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Mathieu Arnold 2005-10-13 20:09:49 Re: Requêtes insert lentes.
Previous Message Julien WICQUART 2005-10-13 12:47:08 Requêtes insert lentes.