Тип: | integer |
По умолчанию: | 64 |
Минимальный: | 10 |
Максимальный: | 2147483647 |
Контекст: | postmaster |
Перезапуск: | true |
Общая таблица блокировок отслеживает блокировки для max_locks_per_transaction
* (max_connections + max_prepared_transactions) объектов (например, таблиц); таким образом, в любой момент времени может быть заблокировано не больше этого числа различных объектов. Этот параметр управляет средним числом блокировок объектов, выделяемым для каждой транзакции; отдельные транзакции могут заблокировать и больше объектов, если все они умещаются в таблице блокировок. Заметьте, что это не число строк, которое может быть заблокировано; их количество не ограничено. Значение по умолчанию, 64, как показала практика, вполне приемлемо, но может возникнуть потребность его увеличить, если запросы обращаются ко множеству различных таблиц в одной транзакции, как например, запрос к родительской таблице со многими потомками. Этот параметр можно задать только при запуске сервера.
Для ведомого сервера значение этого параметра должно быть больше или равно значению на ведущем. В противном случае на ведомом сервере не будут разрешены запросы.
Рекомендации [EN]
На StackOverflow
На pgsql-hackers
- Re: allow changing autovacuum_max_workers without restarting
- Re: Fix the description of GUC "max_locks_per_transaction" and "max_pred_locks_per_transaction" in guc_table.c
- Re: scalability bottlenecks with (many) partitions (and more)
- Re: partitioning and identity column
- Re: pg_upgrade failing for 200+ million Large Objects