deadlock_timeout (integer)
#
Данный параметр определяет время ожидания блокировки
перед проверкой наличия состояния взаимной блокировки. Проверка
на наличие взаимных блокировок является относительно ресурсоемкой, поэтому сервер не выполняет
ее при каждом ожидании блокировки. Оптимистично предполагается,
что взаимные блокировки не характерны для промышленных приложений, и
система просто ожидает снятия блокировки некоторое время перед проверкой на
взаимную блокировку. Увеличение этого значения сокращает количество времени,
затрачиваемого на излишние проверки, но замедляет регистрацию
реальных ошибок взаимной блокировки.
Если данное значение указано без единиц измерения, оно интерпретируется в миллисекундах.
Значение по умолчанию — одна секунда (1s),
что, вероятно, является минимально целесообразным значением для
практического использования. На высоконагруженном сервере может возникнуть необходимость увеличить этот параметр.
В идеале значение параметра должно превышать типичное время выполнения транзакции,
для повышения вероятности того, что блокировка будет снята до того, как
ожидающий процесс инициирует проверку на наличие взаимной блокировки.
Только суперпользователи и пользователи, обладающие соответствующими SET
привилегиями, могут изменять данный параметр.
В случае когда log_lock_waits установлен,
данный параметр также определяет длительность времени ожидания перед
формированием сообщения в журнале о задержке блокировки. При необходимости
исследования задержек блокировок рекомендуется установить значение параметра меньше
стандартного deadlock_timeout.
max_locks_per_transaction (integer)
#
Общая таблица блокировок содержит место для
max_locks_per_transaction объектов
(например, таблиц) на каждый серверный процесс или подготовленную транзакцию;
следовательно, в любой момент времени может быть заблокировано не более указанного числа различных объектов.
Данный параметр ограничивает среднее количество блокировок
объектов, используемых каждой транзакцией; при этом отдельные транзакции
могут блокировать больше объектов, пока блокировки всех транзакций
размещаются в таблице блокировок. Это не не количество
строк, доступных для блокировки; данное значение не ограничено. Значение по умолчанию,
равное 64, исторически является достаточным, однако может потребоваться
увеличить данный параметр, если выполняются запросы, затрагивающие множество различных
таблиц в рамках одной транзакции, например, при обращении к родительской таблице со
множеством дочерних элементов. Данный параметр может быть установлен только при запуске сервера.
При эксплуатации резервного сервера необходимо установить для данного параметра такое же или более высокое значение, чем на основном сервере. В противном случае выполнение запросов на резервном сервере будет невозможно.
max_pred_locks_per_transaction (integer)
#
Таблица разделяемых предикатных блокировок содержит место для
max_pred_locks_per_transaction объектов
(например, таблиц) на каждый серверный процесс или подготовленную транзакцию;
следовательно, в любой момент времени может быть заблокировано не более указанного числа различных объектов.
Данный параметр ограничивает среднее количество блокировок
объектов, используемых каждой транзакцией; при этом отдельные транзакции
могут блокировать больше объектов, пока блокировки всех транзакций
размещаются в таблице блокировок. Это не не количество
строк, доступных для блокировки; данное значение не ограничено. Значение по умолчанию,
равное 64, исторически является достаточным, однако может потребоваться
увеличьте данное значение, если имеются клиенты, обращающиеся к большому количеству различных
таблиц в рамках одной сериализуемой транзакции. Данный параметр может
бы быть задан только при запуске сервера.
max_pred_locks_per_relation (integer)
#
Данный параметр определяет количество страниц или кортежей одного отношения, которые могут быть
блокированы предикатной блокировкой перед повышением уровня блокировки до охвата всего
отношения. Значения, превышающие или равные нулю, означают абсолютный
предел, в то время как отрицательные значения
означают max_pred_locks_per_transaction деленное на
абсолютное значение данного параметра. Значение по умолчанию составляет -2, что сохраняет
поведение предыдущих версий Digital Q.DataBase.
Данный параметр может быть установлен только в postgresql.conf
файле или в командной строке сервера.
max_pred_locks_per_page (integer)
#
Данный параметр определяет количество строк на одной странице, для которых может быть установлена предикатная блокировка
перед тем как тип блокировки будет изменен на блокировку всей страницы. Значение по умолчанию
составляет 2. Данный параметр может быть задан только в
конфигурационном postgresql.conf конфигурационном файле или в командной строке запуска сервера.