Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
je cherche a afficher les objets dans le cache buffer de postgres mais j'arrive pas a faire le lien entre le schema trouver ca database ???
ci joint mon debut de requete
SELECT nam.nspowner, nam.nspname, use.usename, rel.relname AS "Relation",
count(*) AS "Nb de tampons dans le cache"
FROM pg_buffercache AS buf, pg_class AS rel, pg_user AS use, pg_namespace nam
WHERE buf.relfilenode=rel.relfilenode
AND rel.relowner = use.usesysid
AND nam.oid = rel.relnamespace
GROUP BY nam.nspowner, nam.nspname, use.usename, rel.relname
ORDER BY count(*) DESC;
Merci pour votre aide.
Hors ligne
Le schema est appelé 'namespace' dans les tables système.
Donc l'info est dans pg_class.relnamespace, à joindre avec pg_namespace.oid
Marc.
Hors ligne
J'ai bien fait le lien :
SELECT nam.nspowner, nam.nspname, use.usename, rel.relname AS "Relation",
count(*) AS "Nb de tampons dans le cache"
FROM pg_buffercache AS buf, pg_class AS rel, pg_user AS use, pg_namespace nam
WHERE buf.relfilenode=rel.relfilenode
AND rel.relowner = use.usesysid
AND nam.oid = rel.relnamespace
GROUP BY nam.nspowner, nam.nspname, use.usename, rel.relname
ORDER BY count(*) DESC;
mais je cherche trouver le nom de la base qui heberge le schema, quel table fait le lien entre les schemas et les bases ?
Merci
Hors ligne
Il n'y en a pas. À partir du moment où vous êtes connecté sur une base, vous ne voyez pas les objets des autres bases. Donc, si vous voyez des schémas, c'est qu'ils sont forcément de cette base. Autrement dit, vous ne devez pas faire une jointure "normale", mais un LEFT JOIN.
Guillaume.
Hors ligne
Mais avec postgres on ce connecte forcement a une base non ?
Il y a effectivement quelque chose que j'ai pas compris :
Quand je veux des infos géneral a l'instance ou doit je les chercher ? dans la base postgres ?
Les buffers de cache sont rempli d'objet de tous les schemas...
Merci de vos lumières :rolleyes
Hors ligne
Avec PostgreSQL, on se connecte forcément à une base. pg_buffercache vous fournira des informations sur le contenu de la cache mais il ne pourra pas faire le lien entre l'identifiant et le nom d'une table ou d'un index pour les bases où vous n'êtes pas connecté.
Guillaume.
Hors ligne
Pages : 1