Re: Encontrar una manera menos intensiva de hacer una consulta

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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