Управление максимальным квантом обработки запросов пользователя

Функция

Определение оператора управления максимальным квантом обработки SQL-запросов конкретного пользователя.

Спецификация
   
< управление максимальным квантом обработки запросов пользователя >::=
SET {QUANT | QUANTUM} TIMEOUT {LIMIT размер | UNLIMITED} FOR имя пользователя
Синтаксические правила
  1. Параметр < размер > задает максимальный размер кванта (от 1 до 65535 сек.) в течение которого будут непрерывно выполняться запросы заданного пользователя (см. документ «СУБД ЛИНТЕР. Архитектура СУБД»).

  2. Если длительность непрерывного выполнения запроса пользователя превысит установленный < размер >, его обработка прекращается с выдачей кода завершения 183 («Выполнение запроса препятствует выполнению других запросов»).

  3. Опция UNLIMITED устанавливает неограниченный максимальный квант обработки SQL-запросов указанного пользователя.

    Примечание

    При установке опции UNLIMITED для пользователя запросы прочих пользователей будут ожидать завершения выполнения запросов указанного пользователя.

Общие правила
  1. Устанавливать максимальный размер кванта обработки запросов пользователя имеет право только создатель БД.

  2. По умолчанию значение < размер > принимается равным 120 секунд.

  3. Установленное ограничение сохраняется в БД, распространяется на все каналы, по которым подаются запросы пользователя, и начинает применяться ко всем SQL-запросам, поданным после команды SET QUANT TIMEOUT.

    create user TEST identified by '12345678';
    grant DBA to TEST;
    username TEST/12345678
    set quant timeout limit 5 for TEST;
    Состояние выполнения: 1022 (нарушение привилегий)
    username SYSTEM/MANAGER8
    set quant timeout limit 5 for TEST;
    select
      case when getbyte($$$s35,225) & 0x10 <  > 0 then
        case when getbyte($$$s35,228) = 0 then 'UNLIMITED'
        else cast getbyte($$$s35,228) as char
        end
      else 'DEFAULT'
      end
      from $$$usr
     where $$$s31  > 0 and $$$s32 = 0 and $$$s34='SYSTEM';
    | 5|
  4. Если для пользователя установлен максимальный размер кванта, то изменить его для сессии данной командой можно только в меньшую сторону.