Search notes:

Oracle: Init parameter SGA_TARGET

Setting sga_target to a non zero value enables automatic shared memory management and specifies the size of SGA.
With sga_target > 0, the following pools are automatically sized:
These pools are not affected by sga_target:

Difference between SGA_TARGET and actual SGA size

select
   sga_size,
   sga_target,
   sga_size - sga_target diff
from (
   select
     (select sum      (value) from v$sga                                ) sga_size,
     (select to_number(value) from v$parameter where name = 'sga_target') sga_target
   from
      dual
);

Calculating the value for SGA_TARGET

Oracle recommends to determine a possible value for sga_target with the following query:
select (
   (select sum(value  ) from v$sga                    ) -
   (select current_size from v$sga_dynamic_free_memory)
) "sga_target"
from
  dual;
Whatever value is chosen when setting sga_target, it must be smaller than sga_max_size (otherwise an ORA-02097: parameter cannot be modified because specified value is invalid combined with ORA-56747 is thrown).

See also

SGA
v$sga_target_advice
v$memory_resize_ops
init parameters such as memory_target.

Index