Al estar db_keep_cache_size=0 se ha estado utilizando el buffer pool DEFAULT (el que se define via db_cache_size). En este caso no da error aunque hayas realizado "alter table <owner>.<object_name> storage (buffer_pool keep)".
Digamos para que termines de configurar el uso de KEEP necesitas definir un tamaño a db_keep_cache_size. El trabajo se recomienda hacerlo midiendo el consumo de buffers de los objectos que los quieres poner en el area de KEEP.
Por ejemplo puedes usar el siquiente sql para ver el numero de buffers que estarian consumiendo tus objetos en el area de KEEP:
select o.owner, o.object_name, o.object_type, count(distinct bh.block#) "Num Buffers"
from dba_objects o, v$bh bh
where o.data_object_id=bh.objd
and o.owner='<owner>’
group by o.owner, o.object_name, o.object_type
order by 4;
Luego para monitorear el hit ratio del buffer KEEP podrias usar lo siguiente (este ratio deberia estar por arriba de 95%):
SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS, 1 – (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio" FROM V$BUFFER_POOL_STATISTICS;