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. Оба этих параметра нельзя удалить одновременно из атрибутов очереди ресурсов.

Описание

Очередь ресурсов должна содержать значение ACTIVE_STATEMENTS, MAX_COST или оба сразу. Пользователи могут устанавливать или снимать приоритет очереди ресурсов для управления доступными CPU-ресурсами, используемыми запросами, связанными с этой очередью, либо задавать лимит памяти для контроля общего объема памяти, который могут использовать все отправленные запросы в данной очереди на хосте сегмента.

Команда ALTER RESOURCE QUEUE WITHOUT удаляет указанные ранее ограничения. Очередь ресурсов обязательно должна содержать хотя бы один из параметров — ACTIVE_STATEMENTS или MAX_COST. Удаление обоих параметров из атрибутов очереди ресурсов невозможно.

Параметры

name

  • Имя изменяемой очереди ресурсов.

ACTIVE_STATEMENTS integer

  • Максимальное количество активных запросов, которые могут выполняться одновременно в системе из этой очереди ресурсов. Значение должно быть целым числом больше 0. Чтобы снять ограничение, укажите значение -1.

MEMORY_LIMIT 'memory_units'

  • Общий лимит памяти для всех запросов, отправленных пользователями через эту очередь ресурсов. Единицы памяти могут указываться как kB, MB или GB. Минимальный лимит памяти для очереди — 10 МБ. Максимального значения нет, однако фактический предел времени выполнения запроса определяется объёмом физической памяти на хосте сегмента. По умолчанию лимит не установлен (-1).

MAX_COST float

  • Максимальная оценочная стоимость запроса по результатам оптимизатора, разрешённая системой для запросов из этой очереди. Значение MAX_COST указывается как число с плавающей точкой (например, 100.00) или в экспоненциальной форме (например, 1e+2). Чтобы снять ограничение, укажите значение -1.0.

COST_OVERCOMMIT boolean

  • Если для очереди ресурсов установлено ограничение по стоимости запроса, администратор может разрешить превышение этого лимита (по умолчанию COST_OVERCOMMIT = TRUE). Это означает, что запрос с превышением допустимой стоимости будет запущен, но только при простое системы. Если указано COST_OVERCOMMIT = FALSE, такие запросы всегда будут отклоняться и никогда не будут запускаться.

MIN_COST float

  • Запросы со стоимостью ниже этого порога не ставятся в очередь, а выполняются немедленно. Стоимость измеряется в единицах чтения страниц с диска. Значение 1.0 соответствует последовательному чтению одной страницы с диска. MIN_COST задаётся как число с плавающей точкой (например, 100.00) или в экспоненциальной форме (например, 1e+2). Чтобы снять ограничение, укажите значение -1.0.

PRIORITY={MIN|LOW|MEDIUM|HIGH|MAX}

  • Устанавливает приоритет запросов, связанных с данной очередью ресурсов. Запросы в очередях с более высоким приоритетом получают большую долю доступных CPU-ресурсов. Запросы в очередях с низким приоритетом могут быть задержаны до завершения запросов с более высоким приоритетом.

Примеры

Изменение лимита активных запросов для очереди ресурсов:

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);

Установка лимита стоимости запросов в 3^10 (или 300000000.0) и запрет превышения лимита:

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 является расширением базы данных YMatrix и отсутствует в стандартном PostgreSQL.

Смотрите также

CREATE RESOURCE QUEUE, DROP RESOURCE QUEUE