Perl - AGILIZAR TIEMPO DE RESPUESTA DE CONSULTA DESDE PERL A POSTGRES

 
Vista:
sin imagen de perfil
Val: 7
Ha mantenido su posición en Perl (en relación al último mes)
Gráfica de Perl

AGILIZAR TIEMPO DE RESPUESTA DE CONSULTA DESDE PERL A POSTGRES

Publicado por Xo (9 intervenciones) el 14/10/2022 19:01:37
Buenos días a Todos, agradeceré su valiosa ayuda ya que no se en que estoy fallando con las consultas vía web con Perl y una base de datos en PostgreSQL de 527605 registros, dicha DB se encuentra en un servidor de Linux Centos 7 .

Realizo la consulta directamente en postgresql y el tiempo de respuesta en rápido sin embargo cuando realizo la misma consulta web el tiempo de respuesta es DEMASIADO LENTO[/b].
La base de datos se encuentra INDEXADA.

Les comparto los resultados de un QUERY EXPLAIN:


db=# EXPLAIN (ANALYZE, BUFFERS) SELECT subest,date(fecha_24), to_char(fecha_24,'HH24:MI') as HH_MM,valor FROM t_mediciones WHERE subest='EDO' AND fecha_24::text LIKE '2021-05-%' ORDER BY fecha_24;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=15844.52..15847.76 rows=1295 width=20)
(actual time=299.200..302.464 rows=22975 loops=1)
Sort Key: fecha_24
Sort Method: external sort Disk: 1120kB
Buffers: shared hit=2753 read=2466, temp read=140 written=140
-> Seq Scan on t_mediciones (cost=0.00..15777.58 rows=1295 width=20) (actual time=36.677..273.660 rows=22975 loops=1)
Filter: ((subestacion = 'EDO'::bpchar) AND ((fecha_24)::text ~~ '2021-05-%'::text))
Rows Removed by Filter: 504630
Buffers: shared hit=2753 read=2466
Total runtime: 304.855 ms
(9 rows)

db=# EXPLAIN (ANALYZE, BUFFERS) SELECT subest,date(fecha_24), to_char(fecha_24,'HH24:MI') as HH_MM,valor FROM t_mediciones WHERE subest='EDO' AND fecha_24::text LIKE '2021-09-%' ORDER BY fecha_24;
QUERY PLAN
---------------------------------------------------------------------
Sort (cost=15844.52..15847.76 rows=1295 width=20)
(actual time=276.338..278.983 rows=19242 loops=1)
Sort Key: fecha_24
Sort Method: external merge Disk: 936kB
Buffers: shared hit=2785 read=2434, temp read=118 written=118
-> Seq Scan on t_mediciones (cost=0.00..15777.58 rows=1295 width=20) (actual time=15.882..264.575 rows=19242 loops=1)
Filter: ((subestacion = 'EDO'::bpchar) AND ((fecha_24)::text ~~ '2021-09-%'::text))
Rows Removed by Filter: 508363
Buffers: shared hit=2785 read=2434
Total runtime: 280.953 ms
(9 rows)

EN POSTGRES REALICE LAS SIGUIENTES ACTUALIZACIONES:
1) El parámetro shared_buffers, inicialmente tenía configurado 24 MB y lo actualice a 1 GB.
Actualización:
#vim postsgresql.conf
shared_buffers= 1 GB
#sudo systemctl restart postgresql

2) Actualice el paràmetro de work_mem
db=#set work_mem to ‘1GB’;
postgres=#show work_mem;
1 GB

Después de realizar los cambios reinicie postgresql, sin embargo el TIEMPO DE RESPUESTA NO MEJORA.

Por otro lado el TAMAÑO DE LA MEMORIA RAM DEL SERVIDOR es de 4GB, razón por la cual actualice los shared_buffers y work_mem a 1GB

Estimados expertos agradeceré su invaluable apoyo.

[b]RESPETOS para todos Ustedes
y en espera de contar con su inestimable apoyo reciban un cordial saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder