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