Re: Como indexar correctamente

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: rogoh <rogoh(at)dscorp(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como indexar correctamente
Date: 2005-01-11 01:01:20
Message-ID: 20050111010120.GB1366@dcc.uchile.cl
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Jan 10, 2005 at 06:07:23PM -0600, rogoh wrote:

Hola,

> Ahora la pregunta que tengo y que no he podido solucionar en un sistema que
> estoy haciendo es la forma correcta de indexar tablas que contegan esa
> cantidad de información y que se relacionen con otras tablas para que las
> consultas sean lo mas rapido posible, esto es algo asi como:
>
> Select t1.*, t2.* …… from tabla1 t1,tabla2 t2, ….. where t1.campo1=t2.campo1
> and t1.campo2=t3.campo1 and ………

Es dificil dar ayuda a estos problemas en generico. Lo unico que te
puedo decir es que en 7.4 y anteriores las conversiones de tipo son
problematicas c/r al uso de indices. Lo malo es que como hay
conversiones de datos implicitas, muchas veces uno no se da cuenta que
hay una conversion. Para hacerlas visibles el mecanismo mas sencillo es

create view vista_temporal as
Select t1.*, t2.* …… from tabla1 t1,tabla2 t2, ….. where t1.campo1=t2.campo1
and t1.campo2=t3.campo1 and ………

y luego aplicas
\d vista_temporal

y en la descripcion de la vista vas a observar conversiones de tipos en
los distintos campos donde sea necesario aplicarlas implicitamente. En
7.3 y anteriores el resultado era a menudo sorpresivo e inesperado; es
por esto que en 7.4 se restringio el uso de conversiones implicitas, y
algunas cosas funcionan de manera un poco distinta.

Un comentario obvio es que si tienes llaves foraneas, ambos lados de la
llave deberian tener exactamente el mismo tipo de dato (por ej. int8 <-> int8,
nunca int4 <-> int8)

Para detalles mas especificos, publica la consulta exacta, el explain
analyze y las definiciones de las tablas involucradas; aca aplicamos
correccion de errores. A fuerza de palos eventualmente se entiende el
mecanismo. Es posible que haya algun modelo matematico para describir
todo esto sin tener que hacer ensayo/error, pero yo no lo he visto
escrito.

PS - Uds. nunca solucionaron el problema que les mencione con su MX.
Siguen rebotando la mitad del correo.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Y dijo Dios: "Que sea Satanás, para que la gente no me culpe de todo a mí."
"Y que hayan abogados, para que la gente no culpe de todo a Satanás"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message rogoh 2005-01-11 01:28:47 RE: Como indexar correctamente
Previous Message Jaime Casanova 2005-01-11 00:11:46 Re: Benchmarking de performance entre Oracle y Postgresql