В чем разница между pga_aggregate_target и pga_aggregate_limit?

Чебурек
Дата: 21.09.2015 13:30:31
В чем разница между pga_aggregate_target и pga_aggregate_limit?
Ведь и тот и другой параметр ограничивает суммарную PGA память всех серверных процессов.

pga_aggregate_target  
PGA_AGGREGATE_TARGET specifies the target aggregate PGA memory available to all 
server processes attached to the instance. To set a hard limit for aggregate PGA memory, 
use the PGA_AGGREGATE_LIMIT parameter.

pga_aggregate_limit   
PGA_AGGREGATE_LIMIT specifies a limit on the aggregate PGA memory consumed by the instance.
Asmodeus
Дата: 21.09.2015 13:40:24
Чебурек
В чем разница между pga_aggregate_target и pga_aggregate_limit?
Ведь и тот и другой параметр ограничивает суммарную PGA память всех серверных процессов.

pga_aggregate_target  
PGA_AGGREGATE_TARGET specifies the target aggregate PGA memory available to all 
server processes attached to the instance. To set a hard limit for aggregate PGA memory, 
use the PGA_AGGREGATE_LIMIT parameter.

pga_aggregate_limit   
PGA_AGGREGATE_LIMIT specifies a limit on the aggregate PGA memory consumed by the instance.

Так по моему четко расписано:
pga_aggregate_target - мягкое ограничене, сервер старается придерживаться его (но не обещает);
pga_aggregate_limit - жесткое ограничение, выше не вылезет.
Чебурек
Дата: 21.09.2015 14:23:57
Asmodeus
Так по моему четко расписано:
pga_aggregate_target - мягкое ограничене, сервер старается придерживаться его (но не обещает);
pga_aggregate_limit - жесткое ограничение, выше не вылезет.

Да нет там ничего про мягкое ограничение....
Тут в форуме проскакивало, что например PLSQL таблицы и переменные не учитываются в pga_aggregate_target,
и одна сессия может сожрать памяти больше pga_aggregate_target, вообще всю свободную память забить можно.
Видимо pga_aggregate_target влияет только на настраиваемые параметры, типа *_area_size... ,
а pga_aggregate_limit учитывает всё, что выделятся в PGA, но где в доке этому подтверждение?
И зачем тогда вообще оставлять pga_aggregate_target, если pga_aggregate_limit более универсален?
SQL*Plus
Дата: 21.09.2015 14:30:02
Чебурек,

Рекомендую вам зарегистрироваться на форуме.
Asmodeus
Дата: 21.09.2015 15:09:18
Чебурек
Asmodeus
Так по моему четко расписано:
pga_aggregate_target - мягкое ограничене, сервер старается придерживаться его (но не обещает);
pga_aggregate_limit - жесткое ограничение, выше не вылезет.

Да нет там ничего про мягкое ограничение....

автор
To set a hard limit

Логично, что если для "hard" есть отдельный параметр, то описываемый параметр - "soft".
Чебурек
Тут в форуме проскакивало, что например PLSQL таблицы и переменные не учитываются в pga_aggregate_target,
и одна сессия может сожрать памяти больше pga_aggregate_target, вообще всю свободную память забить можно.

Насколько я помню - учитываются, но именно в силу "мягкости" ограничения pga_aggregate_target и возможны такие эффекты.
Чебурек
Видимо pga_aggregate_target влияет только на настраиваемые параметры, типа *_area_size... ,
а pga_aggregate_limit учитывает всё, что выделятся в PGA, но где в доке этому подтверждение?
И зачем тогда вообще оставлять pga_aggregate_target, если pga_aggregate_limit более универсален?
По моему мнению, все же достаточно прозрачно: pga_aggregate_target устанавливает целевое(!) значение, т.е. значение, к которому сервер будет стремиться, манипулируя размерами сессионных зон памяти. Если надо дать больше для сессии - даст, пусть даже ценой отклонения от указанного значения.

pga_aggregate_limit - жесткий лимит: если надо сессии больше памяти, чем есть - сессия получит отлуп.

В этой связи более универсальным видится как раз первый параметр.
Sayan Malakshinov
Дата: 21.09.2015 15:18:58
Чебурек
Дата: 21.09.2015 15:43:07
xtender
Чебурек,

Limiting process size with database parameter pga_aggregate_limit(Doc ID 1520324.1)

Огромное спасибо, ну чтобы в доке не написать, что PGA_AGGREGATE_TARGET контролирует только настраиваемые параметры?
Таки версия про *area_size* и PLSQL таблицы и переменные верна.... ну и согласен, target - он и есть тагет, не ограничивает.
Чебурек
Дата: 21.09.2015 15:47:19
Asmodeus
Чебурек
Тут в форуме проскакивало, что например PLSQL таблицы и переменные не учитываются в pga_aggregate_target,
и одна сессия может сожрать памяти больше pga_aggregate_target, вообще всю свободную память забить можно.

Насколько я помню - учитываются, но именно в силу "мягкости" ограничения pga_aggregate_target и возможны такие эффекты.

Тоже ноту эту почитайте. :)
Asmodeus
Дата: 21.09.2015 17:26:56
Чебурек
Asmodeus
пропущено...

Насколько я помню - учитываются, но именно в силу "мягкости" ограничения pga_aggregate_target и возможны такие эффекты.

Тоже ноту эту почитайте. :)
Да, заблуждался. =\