Digamos que el limite lo pondria el sistema operativo. En terminos generales no habria limite, pero si realmente quieres aprovechar las funcionalidades del KEEP deberias asegurar que siempre exista un hit ratio alto, por arriba de 95%, es decir que para los objetos que estas colocando exista la menor cantidad de lecturas fisicas.
Ese ratio lo puedes calcular con el script que te envie. Te recomendaria que subas los objetos que se usan bastante y que es muy probable que salgan rapido de memoria, por ejemplo clasicos FULL SCANS a tablas pequeñas hace que salgan rapido del buffer…originando probablemente mas lecturas fisicas. Al ponerlos en el area de KEEP aseguras que permanezcan mas tiempo, pero por ejemplo si pones una tabla que es usado 1 o 2 veces tal vez no tendria mucho sentido que use KEEP, tranquilamente seria mejor en el DEFAULT.
Ahora, algo muy distinto es hacer el CACHE de la tablas, con esto si te asegurarias que los bloques esten en memoria hasta que tu bajes la instancia. Esto si toma mas tiempo calcular, por ejemplo un caso de KEEP + CACHE es para la tabla DUAL.