El 2 de agosto de 2016, 12:22, Sergio Sinuco <
sergiosin...@datatraffic.com.co> escribió:

Hola a todos.
>
> En la base de datos que tenemos en produccion tenemos el siguiente error
> en el log
>
> 2016-08-01 14:26:34 COT 30621 ERROR:  out of shared memory
> 2016-08-01 14:26:34 COT 30621 HINT:  You might need to increase
> max_locks_per_transaction.
>
> Una transaccion tipica del sistema ejecuta la funcion *procesamiento*().
> Para verificar el numero de locks que realiza esta transaccion hice lo
> siguiente en una consola de psql
>
> BEGIN;
> SELECT procesamiento();
>
> Verificando entonces en pg_locks y pg_stat_activity encontre que esta
> transaccion realiza 1921 locks de 3 tipos RowExclusiveLock, AccessShareLock
> y RowShareLock.
>
> Tengo varias dudas y agradeceria el consejo que me puedan dar:
>
>    - Ahora estamos usando el particionamiento de tablas para dividir
>    informacion. Hay una tabla padre y varias tablas hijas. Las tablas hijas
>    heredan de la tabla padre y en la tabla padre hay un trigger que decide a
>    que hija insertar. Cada tabla hija tiene una llave primaria definida y
>    varios indices. Veo que a que pesar de que en teoria solo se inserta en un
>    tabla, se hace un lock de tipo RowExclusiveLock en todas las llaves
>    primarias de las tablas hijas. Esto deberia ser asi?
>
> Cual es el valor del *constraint_exclusion* ? Puedes compartir el código
del trigger?
Como verificas en que tabla está el dato?


>    -
>    - Vamos a reducir el numero de tablas hijas. Creo que podriamos
>    reducir el numero de locks a aproximadamente 600. Esto quiere decir que el
>    parametro max_locks_per_transaction se debe configurar a 600?
>
> No creo que ese sea el problema, claramente el procesamiento está haciendo
más locks de los que debería.
Aumentar en este caso el *max_locks_per_transaction*, solo solucionaría uno
de tus posibles problemas.

Muchas gracias.
>
> --
> Sergio E. Sinuco Leon
> Arquitecto de desarrollo
> Datatraffic S.A.S.
> Móvil: (57) 310 884 26 50
> Fijo (+571) 7426160 Ext 115
> Carrera 47 A No 91 - 91
> Bogotá, Colombia.
> www.datatraffic.com.co
>
> ​
-- 
--
Emanuel Calvo
 3manuek.com

Responder a