ALTER RESOURCE QUEUE
Изменяет ограничения ресурсной очереди.
Синтаксис
ALTER RESOURCE QUEUE <name> WITH ( <queue_attribute>=<value> [, ... ] )
где queue_attribute может быть следующим:
ACTIVE_STATEMENTS=<integer>
MEMORY_LIMIT='<memory_units>'
MAX_COST=<float>
COST_OVERCOMMIT={TRUE|FALSE}
MIN_COST=<float>
PRIORITY={MIN|LOW|MEDIUM|HIGH|MAX}
ALTER RESOURCE QUEUE <name> WITHOUT ( <queue_attribute> [, ... ] )
где queue_attribute может быть следующим:
ACTIVE_STATEMENTS
MEMORY_LIMIT
MAX_COST
COST_OVERCOMMIT
MIN_COST
Для ресурсной очереди должен быть всегда определен атрибут ACTIVE_STATEMENTS либо MAX_COST (или определены оба).
Не удаляйте оба этих атрибута для ресурсной очереди.
Описание
ALTER RESOURCE QUEUE изменяет ограничения ресурсной очереди.
Только суперпользователь может изменять ресурсную очередь.
Вы также можете установить или сбросить приоритет для ресурсной очереди, чтобы контролировать относительную долю доступных ресурсов процессора, используемых запросами, связанными с очередью, или лимит памяти ресурсной очереди, чтобы контролировать объем памяти, который все запросы, отправленные через очередь, могут потреблять на хосте сегмента.
ALTER RESOURCE QUEUE WITHOUT удаляет указанные ограничения ресурса, которые были установлены ранее.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя ресурсной очереди, ограничения которой необходимо изменить |
ACTIVE_STATEMENTS <integer> |
Количество активных операторов, отправленных пользователями в этой ресурсной очереди, разрешенных в системе в любой момент времени.
Значение для |
MEMORY_LIMIT '<memory_units>' |
Устанавливает общую квоту памяти для всех операторов, отправленных пользователями в этой ресурсной очереди.
Единицы памяти могут быть указаны в виде |
MAX_COST <float> |
Общая стоимость (по оценке оптимизатора запросов) операторов, отправленных пользователями в этой ресурсной очереди, разрешенных в системе в любой момент времени.
Значение для |
COST_OVERCOMMIT <boolean> |
Если ресурсная очередь ограничена на основе стоимости запроса, администратор может разрешить превышение стоимости ( |
MIN_COST <float> |
Запросы со стоимостью ниже этого предела не будут ставиться в очередь и будут выполняться немедленно.
Стоимость измеряется в единицах извлечения страниц с диска; |
PRIORITY={MIN|LOW|MEDIUM|HIGH|MAX} |
Устанавливает приоритет запросов, связанных с ресурсной очередью. Запросы или операторы в очередях с более высоким уровнем приоритета получат большую долю доступных ресурсов процессора в случае конкуренции. Запросы в очередях с низким приоритетом могут быть отложены, пока выполняются запросы с более высоким приоритетом |
Примечания
GPORCA и планировщик Postgres используют разные модели оценки стоимости запросов и могут вычислять разные стоимости для одного и того же запроса. Схема управления ресурсами ресурсных очередей Greengage DB не различает и не выравнивает стоимости между GPORCA и планировщиком Postgres; она использует буквальное значение стоимости, возвращаемое оптимизатором, для регулирования запросов.
Когда управление ресурсами на основе ресурсных очередей активно, используйте ограничения MEMORY_LIMIT и ACTIVE_STATEMENTS для ресурсных очередей, а не настраивайте ограничения на основе стоимости.
Даже при использовании GPORCA Greengage DB может вернуться к использованию планировщика Postgres для определенных запросов, поэтому использование ограничений на основе стоимости может привести к неожиданным результатам.
Примеры
Изменить лимит активных запросов для ресурсной очереди:
ALTER RESOURCE QUEUE myqueue WITH (ACTIVE_STATEMENTS = 20);
Изменить лимит памяти для ресурсной очереди:
ALTER RESOURCE QUEUE myqueue WITH (MEMORY_LIMIT = '2GB');
Сбросить максимальный и минимальный лимит стоимости запроса для ресурсной очереди до отсутствия ограничений:
ALTER RESOURCE QUEUE myqueue WITH (MAX_COST = -1.0, MIN_COST = -1.0);
Сбросить лимит стоимости запроса для ресурсной очереди до 3e+10 (или 30000000000.0) и не разрешать превышение (overcommit):
ALTER RESOURCE QUEUE myqueue WITH (MAX_COST = 3e+10, COST_OVERCOMMIT = FALSE);
Сбросить приоритет запросов, связанных с ресурсной очередью, до минимального уровня:
ALTER RESOURCE QUEUE myqueue WITH (PRIORITY = MIN);
Удалить ограничения MAX_COST и MEMORY_LIMIT из ресурсной очереди:
ALTER RESOURCE QUEUE myqueue WITHOUT (MAX_COST, MEMORY_LIMIT);
Совместимость
Оператор ALTER RESOURCE QUEUE является расширением Greengage DB.
Этой команды нет в стандартном PostgreSQL.