| Documentation PostgreSQL 7.2 | ||
|---|---|---|
| <<< Previous | Next >>> | |
CLUSTER indexname ON tablename |
Le groupage s'est effectué correctement.
| RATIONALE: Ce n'est documenté nulle part. Il ne semble pas possible de grouper une table héritée. |
| RATIONALE: La relation spécifiée n'est pas indiquée dans le message d'erreur, lequel contient une chaîne au hasard au lieu du nom de la relation. |
CLUSTER donne des instructions à PostgreSQL pour grouper la table spécifiée par table approximativement basé sur l'index spécifié par indexname. L'index doit déja avoir été défini sur tablename.
Quand une classe est groupée, c'est un réordonnencement basé sur l'index information. Le groupage est statique. En d'autres termes, comme la classe est mise à jour, les changements ne sont pas groupés. Aucune tentative n'est faite pour garder groupés les nouvelles instances ou les tuples mis à jour. Si vous désirez le faire, vous pouvez regrouper manuellement par la commande again.
La table est actuellement copiée vers un index table temporaire, renommé par son nom d'origine. Pour cette raison, toutes les permissions accordées et autres index sont perdus quand le groupage est exécuté.
Dans les cas où vous avez accédé à des lignes uniques au hasard dans une table, l'ordre des données dans la table n'est pas important. Cependant, si vous essayez d'accéder à certaines données plus qu'a d'autres, et qu'il y a un index qui les groupe ensemble, vous aurez tout bénéfice à utiliser CLUSTER.
CLUSTER est très utile dans les cas où vous utilisez un index pour sortir plusieurs lignes d'une table. Si vous avez requit une chaîne de valeurs indexées depuis une table, ou une seule valeur indexée qui possède de multiples lignes, CLUSTER vous aidera parce qu'une fois que l'index identifie le segment de page pour la première ligne, toutes les autres lignes seront probablement sur le même segment de page économisant les accès disque et accélérant la requête.
Il existe deux façons de grouper les données. La première avec la commande CLUSTER, laquelle réordonne la table originale avec l'ordonnancement de l'index que vous spécifiez. Ceci peut être lent sur des grosses tables car les lignes sont récupérées depuis la totalité de l'index, et si la table est pas ordonnée, les entrées sont sur les pages au hazard, ainsi il y a une page disque retrouvée pour chaque lignes déplacée. Postgres possède un cache, mais la majorité d'une grosse table ne sera pas placée dans le cache.
Une autre façon de grouper les données est d'utiliser
SELECT columnlist INTO TABLE newtable
FROM table ORDER BY columnlist
|
| <<< Previous | Home | Next >>> |
| CLOSE | Up | COMMENT |