deadlock_timeout (integer)

Esta es la cantidad de tiempo que se debe esperar en un bloqueo antes de verificar si existe una condición de interbloqueo. La comprobación de interbloqueos es relativamente costosa, por lo que el servidor no la ejecuta cada vez que espera un bloqueo. Asumimos con optimismo que los interbloqueos no son comunes en las aplicaciones de producción y solo esperamos en el bloqueo por un tiempo antes de verificar si hay un interbloqueo. El aumento de este valor reduce la cantidad de tiempo perdido en comprobaciones innecesarias de puntos muertos, pero ralentiza la notificación de errores reales de puntos muertos. Si este valor se especifica sin unidades, se toma en milisegundos. El valor predeterminado es un segundo (1s), que es probablemente el valor más pequeño que desearía en la práctica. En un servidor muy cargado, es posible que desee aumentarlo. Idealmente, la configuración debe exceder el tiempo de transacción típico, para mejorar las probabilidades de que se libere un bloqueo antes de que el camarero decida verificar si hay un punto muerto. Solo los superusuarios pueden cambiar esta configuración.

Cuando se establece log_lock_waits, este parámetro también determina la cantidad de tiempo de espera antes de que se emita un mensaje de registro sobre la espera de bloqueo. Si está tratando de investigar los retrasos de bloqueo, es posible que desee establecer un tiempo más corto de lo normal. deadlock_timeout.

max_locks_per_transaction (integer)

La tabla de bloqueos compartidos realiza un seguimiento de los bloqueos max_locks_per_transaction * (max_connections + max_prepared_transactions) objetos (p. ej., tablas); por lo tanto, no se pueden bloquear más que estos muchos objetos distintos en un momento dado. Este parámetro controla el número promedio de bloqueos de objetos asignados para cada transacción; las transacciones individuales pueden bloquear más objetos siempre que los bloqueos de todas las transacciones quepan en la tabla de bloqueo. Esto es no el número de filas que se pueden bloquear; ese valor es ilimitado. El valor predeterminado, 64, históricamente ha demostrado ser suficiente, pero es posible que deba aumentar este valor si tiene consultas que tocan muchas tablas diferentes en una sola transacción, por ejemplo, consulta de una tabla principal con muchos elementos secundarios. Este parámetro solo se puede configurar al inicio del servidor.

Al ejecutar un servidor en espera, debe establecer este parámetro en el mismo valor o en uno más alto que en el servidor maestro. De lo contrario, no se permitirán consultas en el servidor de reserva.

max_pred_locks_per_transaction (integer)

La tabla de bloqueo de predicado compartido realiza un seguimiento de los bloqueos en max_pred_locks_per_transaction * (max_connections + max_prepared_transactions) objetos (p. ej., tablas); por lo tanto, no se pueden bloquear más que estos muchos objetos distintos en un momento dado. Este parámetro controla el número promedio de bloqueos de objetos asignados para cada transacción; las transacciones individuales pueden bloquear más objetos siempre que los bloqueos de todas las transacciones quepan en la tabla de bloqueo. Esto es no el número de filas que se pueden bloquear; ese valor es ilimitado. El valor predeterminado, 64, generalmente ha sido suficiente en las pruebas, pero es posible que deba aumentar este valor si tiene clientes que tocan muchas tablas diferentes en una sola transacción serializable. Este parámetro solo se puede configurar al inicio del servidor.

max_pred_locks_per_relation (integer)

Esto controla cuántas páginas o tuplas de una sola relación se pueden bloquear por predicado antes de que el bloqueo se promueva para cubrir toda la relación. Los valores mayores o iguales a cero significan un límite absoluto, mientras que los valores negativos significan max_pred_locks_per_transaction dividido por el valor absoluto de esta configuración. El valor predeterminado es -2, que mantiene el comportamiento de las versiones anteriores de PostgreSQL. Este parámetro sólo se puede configurar en el postgresql.conf archivo o en la línea de comandos del servidor.

max_pred_locks_per_page (integer)

Esto controla cuántas filas en una sola página se pueden bloquear con predicado antes de que el bloqueo se promueva para cubrir toda la página. El valor predeterminado es 2. Este parámetro solo se puede establecer en el postgresql.conf archivo o en la línea de comandos del servidor.

Anterior Arriba Próximo
19.11. Valores predeterminados de conexión del cliente Casa 19.13. Compatibilidad de versiones y plataformas