Re: Consulta lenta

From: Jairo Graterón <jgrateron(at)gmail(dot)com>
To: Horacio Miranda <hmiranda(at)gmail(dot)com>
Cc: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta lenta
Date: 2020-10-20 00:01:41
Message-ID: CALnU-rNpixCuFQ3Bt83437jwDsE6=-sFQ-w9=Qk_LxMLM4xE=w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Horacio aquí está la consulta

explain (analyze,buffers)
select count(*), count(*) filter (where fecha_de_emision >= '2020-09-01
05:00:00' and fecha_de_emision < '2020-10-01 05:00:00') from invoices;
QUERY PLAN

------------------------------------------------------------------------------------------------------------------------------------
Aggregate (cost=4404228.16..4404228.17 rows=1 width=16) (actual
time=122785.413..122785.415 rows=1 loops=1)
Buffers: shared hit=321622 read=2501337 dirtied=279 written=65
-> Seq Scan on invoices (cost=0.00..3613593.58 rows=79063458 width=11)
(actual time=0.757..108997.146 rows=78901597 loops=1)
Buffers: shared hit=321622 read=2501337 dirtied=279 written=65
Planning Time: 0.067 ms
JIT:
Functions: 3
Options: Inlining true, Optimization true, Expressions true, Deforming
true
Timing: Generation 0.404 ms, Inlining 34.157 ms, Optimization 31.163 ms,
Emission 20.213 ms, Total 85.937 ms
Execution Time: 122785.916 ms
(10 rows)

El mié., 14 oct. 2020 a las 4:16, Horacio Miranda (<hmiranda(at)gmail(dot)com>)
escribió:

>
> On 8/10/2020 10:18 am, Jairo Graterón wrote:
>
> Sí gracias. Se pudo resolver ese tema en particular y se usó el tipo de
> índice predeterminado que usa postgres.
>
> Aquí está el resultado de la consulta que solicitaste.
>
> => explain select count(*), count(*) filter (where fecha_de_emision >=
> '2020-09-01 05:00:00' and fecha_de_emision < '2020-10-01 05:00:00') from
> invoices;
> QUERY PLAN
>
>
> ------------------------------------------------------------------------------------------------------------------------
> Aggregate (cost=3431745.91..3431745.92 rows=1 width=16)
> -> Index Only Scan using idxpdo46192ooj1ys1xxkcknhsy0 on invoices
> (cost=0.57..2660899.27 rows=77084664 width=11)
> JIT:
> Functions: 2
> Options: Inlining true, Optimization true, Expressions true, Deforming
> true
> (5 rows)
>
> => select count(*), count(*) filter (where fecha_de_emision >= '2020-09-01
> 05:00:00' and fecha_de_emision < '2020-10-01 05:00:00') from invoices;
> count | count
> ----------+---------
> 77322360 | 3679203
> (1 row)
> Time: 15702.502 ms (00:15.703)
>
> Es posible hacer esto.
>
> explain (analyze,buffers)
> select count(*), count(*) filter (where fecha_de_emision >= '2020-09-01
> 05:00:00' and fecha_de_emision < '2020-10-01 05:00:00') from invoices;
>
>
>
> Estamos analizando las diferencias del tiempo de ejecución de algunas
> consultas ya que no tienen la misma respuesta al cambiar de postgres 9.6 a
> 12
>
> Sospecho que no es el mismo hardware, a pesar que tiene igual
> configuración de 32 GB de RAM, disco SSD de 500GB en una instancia AWS de 8
> cores.
>
> Llega un momento que al presentarse más de 3mil request por minuto las
> consultas demoran mucho para finalizar y se degrada el rendimiento en
> general.
>
> No hay cambios en el frontend, sólo se migró a la nueva versión del gestor
> y se perdió la sensación de rapidez que tenía la versión anterior,
>
> El sistema ahora está un poco más estable al crear y/o eliminar índices
> que mejoró notablemente.
>
> Seguiré revisando el porqué se degradó el performance.
>
> Saludos
>
> El mié., 7 oct. 2020 a las 2:46, Jaime Casanova (<
> jaime(dot)casanova(at)2ndquadrant(dot)com>) escribió:
>
>> On Mon, 28 Sep 2020 at 16:16, Jairo Graterón <jgrateron(at)gmail(dot)com> wrote:
>>
>>> Saludos lista, recientemente migramos de postgresql 9.6 a 12
>>>
>>> Ahora tenemos una consulta lenta que está afectando el rendimiento en el
>>> sistema
>>>
>>> Observo que en el explain el motor no está usando el índice del
>>> campo fecha_de_emision
>>>
>>>
>> Saludos,
>>
>> ¿Pudiste solucionar el problema? porque te pidieron el explain analyze
>> pero no veo que hayas pasado.
>>
>> puedes mostrar el resultado de:
>>
>> select count(*),
>> count(*) filter (where fecha_de_emision >= '2020-09-01
>> 05:00:00' and fecha_de_emision <= '2020-10-01 04:59:59.999999'
>> from invoices;
>>
>>
>> además de la estructura de invoices obtenida con \d en psql (por favor,
>> no uses imagenes, pon esas cosas que te pedí en archivos de texto y
>> adjuntalos. gracias)
>>
>> --
>> Jaime Casanova www.2ndQuadrant.com
>> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jairo Graterón 2020-10-20 00:14:21 Re: Consulta lenta
Previous Message Alvaro Herrera 2020-10-14 20:19:39 Re: Consulta lenta