The onstat -g dic command displays the tables whose data dictionary information is currently stored within the dictionary cache in memory.
Dictionary Cache: Number of lists: 31, Maximum list size: 10 list# size refcnt dirty? heapptr table name -------------------------------------------------------- 1 3 1 no 14b5d890 wbe@oninit_shm:informix.t0010url 1 no 14cbb820 wbe@oninit_shm:informix.t9051themeval 0 no 14b63c20 wbe@oninit_shm:informix.t0060hits 2 2 0 no 14b97420 wbe@oninit_shm:informix.t0120import 1 no 14b6c820 wbe@oninit_shm:informix.t9110domain 3 3 0 no 14bce020 wbe@oninit_shm:informix.t0150url 0 no 14d3d820 contact@oninit_shm:informix.wbtags 0 no 14c87420 wbe@oninit_shm:informix.wbtags 4 1 0 no 14b7a420 drug@oninit_shm:viagra.product ..... Total number of dictionary entries: 36
|list#||The data dictionary hash chain ID||Dec|
|size||The number of entries in this hash||Dec|
|refcnt||The number of SQL statements currently referencing one of the entries in this cache.||Dec|
|dirty?||Whether this entry has been modified relative to its entry on disk.||Str|
|heapptr||The in-memory address for the heap used to store this entry.||Hex|
|table name||The name of the table in the cache.||Str|
Note: the table can have multiple entries, typically 1 clean and multiple dirty.
There are other operations beyond DDL that will cause a data dictionary entry to be marked as dirty. An example is any update statistics operation. A dirty entry will remain visible in the cache until all references to the cache entry have been removed. Any active SQL statement against a table will generate a reference to that table's data dictionary cache entry, as will declared cursors and stored procedures. Since ER has to know about the structure of a table in order to know how to interpret logical log records then it's likely it will also hold a reference to the dictionary cache.
To discuss how Oninit ® can assist please call on +1-913-674-0360 or alternatively just send an email specifying your requirements.