Vous n'êtes pas identifié(e).
Bonjour,
Savez-vous si c'est possible via une requête SQL ?
Je sais le faire en SQL Server mais pas en PostgreSQL.
J'ai bien lu ça : http://www.dalibo.org/glmf109_operation … postgresql, puis ça : http://blog.guillaume.lelarge.info/inde … gstattuple mais ça ne répond pas à mon besoin.
Gôm
Hors ligne
Ça dépend… en pourcentage de quoi ?
Plus sérieusement, on obtient pour les index les informations les plus fiables avec l'extension pgstattuple (en particulier la fonction pg_statindex). C'est à un CREATE EXTENSION de distance, en 9.1 ou plus. Dans les versions antérieures, il faut exécuter un script pour créer les objets associés. http://www.postgresql.org/docs/9.1/stat … tuple.html
Avec, il y a le nombre de pages (leaf_pages), leur pourcentage de remplissage (avg_leaf_density), et leur fragmentation (leaf_fragmentation), c'est à dire le nombre de feuilles non-contigues physiquement dans l'index.
On pourrait donc définir deux pourcentages: le pourcentage de remplissage (ça pourrait être le avg_leaf_density) et le pourcentage de fragmentation (leaf_fragmentation/leaf_pages*100).
Marc.
Hors ligne
J'ai oublié de préciser… pgstatindex (il n'y a pas d'underscore en fait) fait un scan complet de l'index. Ce n'est donc pas à exécuter toutes les 10 secondes sur tous les index de l'instance
Marc.
Hors ligne
Merci.
Etant en version 8.4 "basique" je dois commencer par installer cette extension. C'est bien cela ?
http://www.postgresql.org/docs/8.4/static/contrib.html
Gôm
Hors ligne
Il faut installer l'extension, oui. Par contre, ça dépend vraiment du système d'exploitation. Si le serveur est sous Windows, le module est déjà compilé. Si c'est un Linux, il faut vérifier que le package postgresql-xxxx-contrib est installé. Dans ce cas, il n'y a plus qu'à faire la commande :
<code>
psql -d dbname -f SHAREDIR/contrib/module.sql
</code>
Si sous Linux et que le package n'est pas installé, il faut l'installer avant. Si sous Linux et que c'est une version compilée à la main (pas un package), alors là, oui, il faut compiler les contrib.
Marc.
Hors ligne