From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Gunnar Wolf <gwolf(at)gwolf(dot)org> |
Cc: | PostgreSQL Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>, Víctor Gonzalez Quiroga <masterquiroga(at)ciencias(dot)unam(dot)mx> |
Subject: | Re: Encontrar una manera menos intensiva de hacer una consulta |
Date: | 2017-03-14 17:35:26 |
Message-ID: | 20170314173526.jj36tnclbn7sic2p@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gunnar Wolf escribió:
> OK, interesante consejo, y tiene algo de sentido. Sin embargo... Se ve
> que tengo que hacer algo de trabajo antes de implementarlo, porque,
> con 8.5GB libres (y una BD que ocupa 6.6G),
Hmm, 6.6 GB para unos cuantos keyring? Suena excesivo ...
Noté recién que tienes ORDER BY en las definiciones de algunas vistas, los
cuales yo también quitaría, a menos que el orden tenga importancia (que
no me lo parece).
Creo que gran parte del problema son está en esta vista y
people_metadata:
CREATE OR REPLACE VIEW pubkey_metadata_equivalence AS
SELECT DISTINCT pkm1.keyid AS original_keyid,
pkm2.keyid,
pkm2.name,
pkm2.email,
pkm2.algorithm,
pkm2.created_at,
pkm2.expires,
pkm2.comment
FROM pubkey_metadata pkm1
JOIN pubkey_metadata pkm2 ON pkm1.email = pkm2.email
ORDER BY pkm1.keyid;
Acá te recomendaría quitar el ORDER BY, que no te está haciendo ningún
favor. Es mejor aplicar ORDER BY al resultado final, al consultar la
vista. De todas formas, estás ignorando name, algorithm, created_at,
expires, comment de la original_keyid, ¿no? Me parece que esta vista
está "perdiendo datos", y más bien lo que quisieras es el conjunto de
todos los keyid de un mismo email:
SELECT array_agg(keyid) FROM pubkey_metadata GROUP BY email;
Y a continuación puedes extraer toda la info de cada llave en cada uno
de esos arrays; (te construiría un ejemplo pero seguro que me equivoco,
sin tener datos de prueba a mano).
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar Wolf | 2017-03-14 18:54:33 | Re: Encontrar una manera menos intensiva de hacer una consulta |
Previous Message | Gunnar Wolf | 2017-03-14 17:09:19 | Re: Encontrar una manera menos intensiva de hacer una consulta |