Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Storage Structures

Re: Storage Structures

From: Vladimir Andreev <flado_at_imail.de>
Date: 13 Nov 2002 05:36:18 -0800
Message-ID: <7b208869.0211130536.6e98b095@posting.google.com>


"Steve" <hunt.s_at_blueyonder.co.uk> wrote in message news:<tKeA9.1463$rC5.958_at_news-binary.blueyonder.co.uk>...
> I am looking for a diagrammatical explanation of efficient storage
> structures within Oracle.
> If anyone knows where I could get hold of this or could mail me a copy I
> would be most grateful.

There's nothing really special about the storage structures used within Oracle: most of them are heaps, linked lists, hash tables with overflow chains, B*-trees, and, of course, plain old arrays. Every decent book on Storage Structures should contain diagrams of these.

Heaps and subheaps are heavily used for disk storage (e.g., segments are heaps, DM-tablespaces are also heaps) and in the shared pool. Linked lists are used for many things like heap freelists and cache LRU lists; index leaf blocks form a double-linked list, etc. Arrays are used for fixed-size internal memory structures (e.g., SESSIONS and PROCESSES) as well as for dynamically resizeable array structures (or collections) like e.g. the FET$ and UET$ tables (the free and used extent information for DMTablespaces), or the ITL table in block headers. Hash tables are used wherever a quick exists check needs to be performed, e.g., whether or not a given block is already in the buffer cache (the "cache buffers chains" is actually a hash table with overflow chains), or whether or not a SQL statement was already parsed...

I don't think that even at Oracle they have diagrams of all the storage structures they use. So please be specific.

Cheers,
Flado Received on Wed Nov 13 2002 - 07:36:18 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US