RE: [pgsql-es-ayuda] Tamaño INT8

From: "Douglas Escobar" <douglas(at)liztex(dot)com>
To: "'Alvaro Herrera'" <alvherre(at)dcc(dot)uchile(dot)cl>, 'Eduardo Vázquez Rodríguez' <evazquez(at)insys-corp(dot)com(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Tamaño INT8
Date: 2005-04-06 00:54:13
Message-ID: 000001c53a43$26e29310$0400a8c0@DOUGLAS
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Saludos Lista
Cual es el tamaño del Int8 oh cuantos registros me puede
almacenar en la Base de Datos

slds

-----Original Message-----
From: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] On Behalf Of Alvaro Herrera
Sent: Martes, 05 de Abril de 2005 02:20 p.m.
To: Eduardo Vázquez Rodríguez
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Postgres Out of memory

On Tue, Apr 05, 2005 at 03:00:08PM -0500, Eduardo Vázquez Rodríguez
wrote:

Hola,

> Estoy corriendo un query que creo que le está pegando mucho al
> performance de mi servidor es una máquina Solaris con 8 Gigas de RAM y

> al correr un query me aparece un error que dice "out of memory"

> SELECT proceso, id_mail, to_mail, temp
> FROM (
> SELECT proceso, id_mail, to_mail, count (*) AS temp
> FROM SENDMAIL2
> GROUP BY proceso, id_mail, to_mail
> HAVING proceso = 'Automatas'
> ) AS TAB_TEMP
> HAVING temp != 1

Por que no usas un solo HAVING? O sea

SELECT proceso, id_mail, to_mail, temp
FROM (
SELECT proceso, id_mail, to_mail, count (*) AS temp
FROM SENDMAIL2
GROUP BY proceso, id_mail, to_mail
HAVING proceso = 'Automatas' AND temp <> 1
) AS TAB_TEMP

De hecho no veo para que usas la consulta externa, y por que no pones
"proceso" en el WHERE (de hecho si te fijas en el explain, la condicion
se mueve dentro del seqscan de sendmail2 como si fuera una clausula
WHERE); por que no usas mejor

SELECT proceso, id_mail, to_mail
FROM SENDMAIL2
WHERE proceso = 'Automatas'
GROUP BY proceso, id_mail, to_mail
HAVING count(*) <> 1

> QUERY PLAN
> Subquery Scan tab_temp (cost=622577.68..622612.73 rows=2003
width=118)
> -> HashAggregate (cost=622577.68..622592.70 rows=2003 width=110)
> Filter: (count(*) <> 1)
> -> Seq Scan on sendmail2 (cost=0.00..622327.31 rows=20029
> width=110)
> Filter: ((proceso)::text = 'Automatas'::text)

Hum! Por favor haz "SET enable_hashagg to OFF" y luego tomas el explain
analyze de la consulta.

> shared_buffers = 50000
> work_mem = 2097151
> maintenance_work_mem = 2097151

Cual es el razonamiento que te hizo poner esos valores en work_mem y
maintenance_work_mem? Mas que seguro, son erroneos. Bajalos a valores
razonables; unas decenas de megas puede ser, cuando mucho ...
shared_buffers tambien es un poco excesivo IMHO.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"I personally became interested in Linux while I was dating an English
major
who wouldn't know an operating system if it walked up and bit him."
(Val Henson)

---------------------------(fin del mensaje)---------------------------
TIP 9: el optimizador ignorará el uso de recorridos de índice si los
tipos de datos de las columnas no coinciden

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message juan osorio 2005-04-06 06:24:25 funciones plpgsql otra vez - consultas dinámicas...
Previous Message Alvaro Herrera 2005-04-05 20:19:51 Re: Postgres Out of memory