[Pgsql-ayuda] Re: Consulta por Performance

Alvaro Herrera alvherre@dcc.uchile.cl
Tue, 20 Jan 2004 10:14:56 -0300


On Tue, Jan 20, 2004 at 10:03:11AM -0300, Carmen Gloria Sepulveda Dedes wrote:

> Hmmm ... No hay llaves de ningun tipo en la tabla.  Lo que si hay son 3
> indices.  Lo que estoy probando ahora es que luego de hacer un select a la
> tabla, hago drop a los indices, hago el insert por medio de un cursor (para
> poder hacer el analyze que sugieres cada cierta cantidad de registros
> insertados), luego recreo los indices y sigo con la ejecucion de la funcion.

Puedes hacer el ANALYZE en otra conexión, concurrentemente.  No debería
ser necesario parar la inserción para hacerlo.

> En una prueba que deje corriendo, la insercion se demoro 1 hora, 15 minutos
> aproximadamente, bastante menos de lo que habia sido hasta ahora.  En todo
> caso, sigo pensando que es demasiado tiempo, considerando las caracteristicas
> de la maquina en que esta corriendo (Postgresql 7.4 sobre Penguin Computing
> Altus 3200 64 bits, disco SCSIcon 2 Gb de RAM).

Hum.  Supongo que el sistema I/O da bastante más que eso; lo has medido?

A ver, si esta máquina tiene un procesador Intel, o es Opteron?
Compilaste tu misma esa versión de Postgres?  Sé que hubo algunos dramas
con procesadores Xeon porque los spinlocks no estaban funcionando
correctamente (y para Opteron también ha habido cambios, me parece).
Trata de recompilar, pero no uses 7.4 sino la versión actual de CVS,
porque hubo cambios importantes en esa área.  (Claro que esto debería
afectarte sólo si hay otro proceso haciendo alguna otra cosa cualquiera
simultáneamente, quizas incluso no haciendo nada)  (Para identificar si
tienes este problema podrías intentar pegarle un strace o gdb al backend
y ver si se ejecutan muchas funciones relacionadas con semáforos SysV)

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"A wizard is never late, Frodo Baggins, nor is he early.
He arrives precisely when he means to."  (Gandalf, en LoTR FoTR)