7.2.1.1 How True Cache Works with the Primary Database Buffer Cache

By default, marking something KEEP on the primary database also marks it KEEP on True Cache.

To prevent objects that are intended to be KEEP objects only on the primary database from filling up the True Cache KEEP buffer pool, you can use the DBMS_CACHEUTIL.TRUE_CACHE_KEEP procedure to mark objects as KEEP on True Cache. DBMS_CACHEUTIL.TRUE_CACHE_KEEP takes precedence and overrides objects that are marked as KEEP on the primary database.

Also consider the following points:

  • ALTER TABLE KEEP assignments on the primary database are persistent because ALTER TABLE is a DDL. The DBMS_CACHEUTIL.TRUE_CACHE_KEEP procedure isn't persistent when True Cache restarts.
  • You can't use the DBMS_CACHEUTIL.TRUE_CACHE_UNKEEP procedure to unkeep a primary ALTER TABLE KEEP assignment. Instead, either don't configure DB_KEEP_CACHE_SIZE on True Cache or assign a different object with DBMS_CACHEUTIL.TRUE_CACHE_KEEP on True Cache.
  • All scans on True Cache use the CACHE path instead of the direct (NOCACHE) path, except temporary tables that are local to True Cache.