Agotamiento del Espacio en Disco al Ejecutar Conulta

From: A J <anxusgo(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Agotamiento del Espacio en Disco al Ejecutar Conulta
Date: 2012-02-08 11:45:09
Message-ID: SNT130-W371A85463BBDD9DFF79FBB67A0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos días compañeros:
Hace tiempo tuve un problema "similar" que mandé a la lista y que resultó ser un fallo en el diseño de una consulta. Ahora me sucede algo parecido con una consulta lanzada en PostgreSQL, pero no creo que tenga que ver con el diseño de la consulta. Les comento de forma detallada.
Tengo instalado Postgres 8.4 en un portátil con sistema operativo Windows 7, un procesador de doble núcleo (1.3 GHz) y 4 GB de memoria RAM. He estado manejando grandes cantidades de datos en Postgres hasta el momento (tablas de 20, 30 o 100 millones de tuplas) sin ningún tipo de problemas, incluso haciendo diferentes JOINS. Sin embargo, llevo un par de días atascado con una consulta en la que pretendo realizar un INNER JOIN entre dos tablas. La primera de ellas cuenta con alrededor de 150 millones de tuplas, y la segunda con aproximadamente 130 millones. El asunto es que cuando Postgres se dispone a realizar la consulta consume todo el espacio de disco que me queda en el PC, y por esta razón, no puede finalizar el cálculo de la consulta.
El espacio libre en disco que tengo en el PC asciende a 150 GBs, por lo que me parece suficiente para que Postgres pueda realizar la consulta. Más aún, cuando anteriormente he podido realizar consultas similares a ésta sin ningún tipo de problema. Es por esto último por lo que me da que pensar que algo no está funcionando bien en mi server. Podría deberse a una configuración errónea en el archivo postgres.conf? Les detallo aquí las tablas que intervienen en la consulta y el código sql de dicha consulta:
Tablas utilizadas en la consulta:
TABLA: normalized_coup -- alrededor de 150 millones de registros IDJ_ORIG bigint IDJ_DEST bigint COUPLING bigint IDJ_SAHRED bigint
TABLA: normalized_cocit -- alrededor de 130 millones de registros IDJ_ORIG bigint IDJ_DEST bigint COCITATION bigint IDJ_SAHRED bigintCódigo SQL utilizado en la consulta:
SELECT normalized_coup."IDJ_ORIG", normalized_coup."IDJ_DEST", normalized_cocit."COCITATION", normalized_coup."COUPLING"INTO JOIN_coup_cocitFROM normalized_coup INNER JOIN normalized_cocit ON (normalized_coup."IDJ_ORIG" = normalized_cocit."IDJ_ORIG") AND (normalized_coup."IDJ_DEST" = normalized_cocit."IDJ_DEST") ;
Por si sirve de ayuda, cuando ejecuto la consulta, me voy al Monitor de Recursos de Windows y en la parte de Disco he comprobado que la E/S de Disco oscila entre 15-25 Mb/s. También me parece raro que si activas en el Monitor de Recursos los procesos en funcionamiento en el equipo, donde podría visualizarse el uso de CPU, Disco..., que realiza Potgres, no veo ninguna línea en el gráfico que señale la cantidad de disco que está realmente utilizando Postgres (con otras consultas, si que lo he podido apreciar). Además, no ocurre lo mismo con los procesos asociados a la CPU, donde si puedo apreciar el uso que Postgres está haciendo de ella. Por último el uso de la RAM muestra valores oscilando entre los 200 MB y los 400 MB aproximadamente.
Bueno, pues espero haberme explicado bien y no liar más al personal. Hago constar también que no soy usuario avanzado de Postgres, sólo soy un usuario que maneja consultas en SQL que es para lo que lo necesito realmente.
Saludos y muchísimas gracias de antemano por vuestra atención!
Antonio J.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Leonel Fuentes Marrero 2012-02-08 13:25:33 Problema para construir una funcion dinamicamente
Previous Message gorka 2012-02-08 11:29:23 Re: transacciones dentro de una transaccion