Porque no usa auto_explain que escribe en el log el query plan? En ese
case, sabrias exactamente que plan se uso y de ahi ver si hace falta
un indice, o a lo mejor la consulta debe optimizarse de otra manera.

Igualmente, la optimizacion que estan buscando se llama "Upgrade" como
ya dijo Alvaro.

El mar, 18 feb 2025 a las 21:52, Horacio Miranda
(<hmira...@gmail.com>) escribió:
>
> Ojo, con ese script que corre la misma consulta cada min. y no tienes 
> problemas de velocidad me podría indicar que tal vez sea un tema de cache de 
> la consulta, que la saca de la RAM ( cache ).
>
> Si la consulta no corre por un buen rato y se saca del cache, al correrla 
> fresca se podría demorar.  Ignoro que parametros tienes a nivel de disco en 
> esa version, pero puede indicar algo del LRU cache. En Oracle puedes hacer 
> que una tabla este en memoria en postgresSQL eso creo que no se puede hacer y 
> no tiene mucho sentido por algo que se converso hace muchos años atras cuando 
> hice esa pregunta, recuerdo que Alvaro mensiono que para estan los LRU y que 
> no tenia sentido y estoy de acuerdo, dicho esto puede que tengas que revisar 
> el tamaño del cache.
>
> Sobre velocidad del disco, que S.O estas usando y filesystem ? dependiendo 
> del filesystem puede que tengas que defragmentar.
>
> NOTA: Al correr cada minuto esa consulta lo que haces es que el LRU de esa 
> consulta se refresca y el plan sigue en memoria.
>
>
>
> On 19 Feb 2025, at 4:58 AM, Guillermo E. Villanueva <guillermo...@gmail.com> 
> wrote:
>
> Extrañamente hoy la query anduvo bien, ya tengo armado el script sugerido por 
> Horacio pero por ahora no hay demoras.
> Si hay demora, me va a dejar el plan en un log y se los muestro.
>
> Muchas gracias!
>
> El mar, 18 feb 2025 a las 12:41, Carlos T. Groero Carmona 
> (<cton...@gmail.com>) escribió:
>>
>> Guillermo, si logras capturar el plan y comparar, revisa el plan mode que te 
>> comente, a mi me paso recientemente en la version 14, despues de ejecutar la 
>> misma query con los mismos valores mas de 10 veces, la query empieza a 
>> correr ridiculamente despacio, una query que corre desde mi laptop en 85ms 
>> estaba demorando en ocaciones 27 seg.
>>
>> La razon no fue network lag, no fue saturacion en el hardware, fue 
>> specificamente como postgres determinaba que plan usar despues de correr 9 o 
>> 10 veces la misma query desde la applicacion.
>>
>>
>> On Tue, Feb 18, 2025, 4:43 AM Guillermo E. Villanueva 
>> <guillermo...@gmail.com> wrote:
>>>
>>> Es buena idea Horacio, voy a armarla bien y luego les comento.
>>> Muchas gracias.
>>>
>>> El mar, 18 feb 2025 a las 6:38, Horacio Miranda (<hmira...@gmail.com>) 
>>> escribió:
>>>>
>>>> Y hacer un script que guarde el explain (buffers,analyze) select … cuando 
>>>> el time se demore mas de 10 segundos ?
>>>>
>>>> Lo corres a cada rato y de esa forma capturas el plan malo vs el plan 
>>>> bueno ?
>>>>
>>>> Algo como  Lo dejas corriendo en el crontab, sera un poco pesado pero 
>>>> puede darte luces del plan que esta siguiendo.
>>>>
>>>> #!/bin/bash
>>>> FILE=/tmp/output_$(date +%Y%m%d%H%M)”.log
>>>>
>>>> SECONDS=0
>>>> psql < consulta.sql > /tmp/output.txt
>>>> if [ $SECONDS -gt 10 ]  ; then
>>>>   cp /tmp/output.txt $FILE
>>>>   echo “Revisar $FILE
>>>> fi
>>>>
>>>>
>>>>
>>>> On 18 Feb 2025, at 3:59 PM, Guillermo E. Villanueva 
>>>> <guillermo...@gmail.com> wrote:
>>>>
>>>> Gracias por tu comentario, si puse la query, no usa prepare, va directo.
>>>>
>>>>
>>>> El El lun, 17 feb 2025 a la(s) 23:57, Carlos T. Groero Carmona 
>>>> <cton...@gmail.com> escribió:
>>>>>
>>>>> Si, si estas usando prepared statements puede pasar, recisa esto: 
>>>>> plan_cache_mode
>>>>>
>>>>> El valor por default is auto, trata de cambiarlo a forced_custom_plan
>>>>>
>>>>> Regards,
>>>>> Carlos
>>>>
>>>>
>


-- 
Martín Marqués
It’s not that I have something to hide,
it’s that I have nothing I want you to see


Reply via email to