Pour des tables qui sont essentiellement en lecture seule et où un simple index sert à la majorité des requêtes, PostgreSQL offre la commande CLUSTER
. Cette commande réordonne physiquement toutes les lignes de données dans l'ordre du critère de l'index, ce qui offre deux avantages du point de vue des performances. D'abord pour les scans d'index, le nombre de recherche dans la table est considérablement réduit. Deuxièmement, si votre ensemble de travaille ne concerne que de petits intervalles sur l'index, vous obtenez une recherche plus efficace car les données sont dispersées sur moins de pages. (Merci de vous référer à la documentation de la commande CLUSTER
du manuel PostgreSQL pour davantage d'informations).
Cependant, PostgreSQL ne permet actuellement pas le clustering sur les index GIST de PostGIS car les index GIST ignorent les valeurs NULL
, vous obtenez un message d'erreur du type :
ERREUR: impossible de faire un cluster quand la méthode d'indexation ne tolère pas les valeurs null
TRUC : Vous pourrez contourner cet incovénient en marquant la colonne "the_geom" NOT NULL.
Comme le message vous le spécifie, on peut contourner cet inconvénient en ajoutant une contrainte NOT NULLl
à la table :
ALTER TABLE
Bien sûr, cela ne fonctionnera pas si vous avez de fait besoin de valeurs NULL
dans votre colonne de géométrie. En plus vous devez donc utiliser la méthode ci-dessus pour ajouter la contrainte, utiliser une vérification du style ALTER TABLE blubb ADD CHECK (geometry is not null);
ne fonctionnera pas.
Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 4476 lectures
Posté par rédacteurs le 6 Avril, 2006 - 21:07.