Re: Comportamiento work_mem (windows)

From: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Comportamiento work_mem (windows)
Date: 2008-06-09 12:06:33
Message-ID: FFC0D44B0DF34DA18352E9DD5BEF2E5F@Principal
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--------------------------------------------------
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
Sent: Sunday, June 08, 2008 8:16 PM
To: "Raúl AndrésDuque Murillo" <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Comportamiento work_mem (windows)

> Raúl Andrés Duque Murillo escribió:
>
>> 7. Ejecuto de nuevo la consulta, y efectivamente se ha eliminado el
>> uso de los archivos temporales de aprox. 1.5MB, pero sigue usándose el
>> de 35MB. Vamos bien !!!
>> 8. Subo el work_mem = 50MB
>> 9. Ejecuto la consulta MULTIPLES VECES y SIGUE utilizándose el archivo
>> temporal de 35MB pero creció el tiempo en 2s !!!
>> 10. Sé que los 35MB se utilizan para el order by por que si lo quito ya
>> no se usa ese archivo temporal.
>
> No tengo muy claro esta parte del codigo, pero se me ocurre que quizas
> lo que pasa es que la estimacion es que va a usar mucha mas memoria para
> hacer el sort completo, y por eso decide usar el disco desde el
> principio. Fijate en el EXPLAIN ANALYZE si la estimacion total de
> tuplas esta muy desviada de la cantidad verdadera de tuplas que se
> generan en ese sort. Quizas intenta poner un work_mem mucho mas grande
> (100 o 500 MB) a ver si en algun momento se decide a no usar el disco.
>

Tenías razón (como siempre :-)) ... usando 100MB llegó a no requerir disco
para el sort. Lo que entiendo es que realmente requería cerca de 51MB para
realizar el sort (eso muestra el explain con work_mem = 100MB), sin embargo
no entiendo porque con 1MB, 5MB y 50MB, siempre usaba cerca de 35MB en
disco?? ... cómo puedo saber el TOTAL de memoria requerida en un query
(pareciera que sólo me muestra es la requerida en disco o el total se se
realiza en memoria)?

>> 11. Vuelvo a work_mem = 5MB y vuelvo a optener los valores de 2s por
>> debajo.
>
> Esta parte no me queda nada clara. Supongo que hay una diferencia en el
> plan pero no mostraste los planes.
>

Envío adjunto los explains analyze para work_mem en [1MB, 5MB, 50MB y
100MB].
Disculpen no enviar los links por el http://explain-analyze.info/ pero
cuando intente usarlo andaba fuera de servicio "temporalmente".

RAUL DUQUE
Bogotá, COlombia

> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.
>
> __________ Information from ESET Smart Security, version of virus
> signature database 3165 (20080606) __________
>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>
>

Attachment Content-Type Size
wm1.txt text/plain 4.6 KB
wm5.txt text/plain 4.6 KB
wm50.txt text/plain 4.6 KB
wm100.txt text/plain 4.6 KB

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Cristian Montenegro 2008-06-09 13:04:32 Imagenes + Java
Previous Message Juan Carlos Barranco de Paz 2008-06-09 10:16:52 pasar array en pl/pgsql