From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Raúl Andrés Duque <ra_duque(at)yahoo(dot)com(dot)mx> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Optimizar Vista |
Date: | 2007-04-27 13:12:07 |
Message-ID: | 20070427131207.GC4645@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Raúl Andrés Duque escribió:
> Tengo una serie de vistas que realizan múltiples JOINs con el único
> objetivo de obtener las descripciones de las tablas asociadas. Estas
> vistas son usadas para realizar búsquedas desde una aplicación y es
> muy probable que las búsquedas se realicen por los campos descripción
> de las tablas asociadas.
>
> Qué indices debería usar para optimizar búsquedas en estas vistas??
>
> Por ahora se me ocurre crear índices por los campos descripción de
> cada una de las tablas relacionadas.
Dado que las búsquedas se harán por esos campos entonces tiene sentido
crear esos índices. Pero ojo! Si esas tablas son pequeñas (digamos
unos pocos cientos de registros o menos), entonces probablemente no
valga la pena tener esos índices, puesto que hacer búsquedas
secuenciales será tanto o más rápido que hacer recorridos de índice.
Te recomiendo hacer
ALTER TABLE foo ALTER descripcion SET STORAGE EXTERNAL
Lee
http://www.postgresql.org/docs/8.2/static/sql-altertable.html
y
http://www.postgresql.org/docs/8.2/static/storage-toast.html
Para saber si realmente los índices te sirven o no, haces esto sin tener
el índice:
-- esto te entrega el resultado sin índice
EXPLAIN ANALYZE SELECT ...
BEGIN;
CREATE INDEX foobar ON ...
-- repites el select de arriba y ahora te da el resultado con índice
EXPLAIN ANALYZE SELECT ...
COMMIT/ROLLBACK
Si el índice resulta ser provechoso, haces COMMIT y el índice queda
creado. Si no sirve, entonces haces ROLLBACK y automáticamente se
borra. (Otra alternativa es simplemente crear el índice y después hacer
un DROP INDEX si determinas que no te sirve).
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-04-27 13:58:23 | Re: caracteres en UTF8 |
Previous Message | Mario Gonzalez | 2007-04-27 12:24:25 | Re: Re: [pgsql-es-ayuda] Requerimientos mínimos de hardware/software |