I thought V$DB_OBJECT_CACHE was a view looking at the contents of the Library Cache. I also thought the Library Cache was where SQL statements, their execution plans and so on were cached. So I was a bit confused by this (10.2.0.5 on 32-bit Linux):
SQL> select type, count(*) from v$db_object_cache group by type order by type;
TYPE COUNT(*)
---------------------------- ----------
APP CONTEXT 1
CLUSTER 7
CONTEXT POLICY 1
CURSOR 22328
FUNCTION 1
IFS 2
INDEX 7
INVALID TYPE 22
JAVA CLASS 162
JAVA SHARED DATA 1
LIBRARY 1
NON-EXISTENT 6
NOT LOADED 10728
PACKAGE 46
PACKAGE BODY 47
PROCEDURE 2
PUB_SUB 8
QUEUE 3
RSRC CONSUMER GROUP 1
RULESET 1
SEQUENCE 6
SYNONYM 43
TABLE 177
TRIGGER 2
TYPE 18
TYPE BODY 1
VIEW 62
I can understand why types, triggers, procedures, cursors and packages are listed... but how can a table, index or view be cached in the Library Cache? (i.e., what part of those things is being cached here? Is it the definitions... but I thought that's what the dictionary cache was for?)
Second and similar question: how can there be anything "not loaded" loaded in the cache? And how can something that doesn't exist be included?
(I posted this in error in the SQL-PL/SQL forum. Now posting in 'General' where it better belongs. Apologies)