En lo personal trato la base de datos como SQL y sigo las reglas de
PL/SQL de Oracle. que es usalo cuando no puedas usar SQL.
Dicho de otra manera, trata de hacer o que el app/desarrolladores usen
SQL siguiendo las siguientes reglas.
1) No usar sub-queries.
2) Revisar los explain plans para identificar el work_mem adecuado para
una consulta X.
3) NO usar funciones en los selects, esto es performance killer.
4) Usar Dexter, dexter es algo bien interesante que te ayuda a
identificar consultas que requieren Indices.
Ignoro si esto te puede ayudar.
Algo adicional que hice en un sistema altamente transaccional. las
tablas mas calientes sacarlas de forma normal 3 y ponerlas en forma
normal 2, es mas datos pero es menos bloqueos.
Particiones, las tablas que son de muchas escrituras particionalas, 50
particiones permiten tener 50 threads no bloqueantes y que la particion
sea con hash. ( Para las Olimpiadas de RIO 2016 eso me ayudo a diseñar
un sistema que soportaba 4.2K TPS con 700 ms de tiempo de respuesta
cuando estaba super ocupado.
On 4/07/2024 7:45 am, Fernando Monjes wrote:
Hola Comunidad , buenas tardes
Quisiera hacerles una consulta , he encontrado esta extensión Swarm64
DA de paga entiendo que acelera las consultas y el performance en
general , pero al parecer esta descontinuada, alguien sabe de algo
parecido a esta extensión, estoy en linea recta a implementar Postgres
en un sistema altamente transaccional y siempre es bueno conocer e
implementar extensiones que puedan mejorar el rendimiento del motor.
--
Atentamente,
Fernando Monjes B.
Consultor DBA
Ingeniero en Informática