A. Oracle searches for a init.ora to determine the configuration
parameters
without a parameterfile, you will get an LRM-00109, ORA-01078 error, and nothing gets started
E. oracle starts an instance
we could argue what exactly starting an instance means, I have just simply put it here because this is the "exact" message that appears first when starting an instance
C. memory for the SGA gets allocated and the background processes that are necessairy get started
background processes like LGWR, DBWR, CKPT, SMON, PMON start in NOMOUNT, way before doing anything with control files...
F. oracle searches for the control files with the parameter CONTROL_FILES
thats the next one when going to MOUNT
D. Oracle searches the database files and redo log files
now tell me, how could the database perform an instance recovery without knowing where the datafiles and redo logs are
B. The proces SMON sometimes executes an instance-recovery
finally an instance recovery is performed, and database gets opened
In Oracle (and other RDBMSs), when an SQL statement is run for the first time, it is cached and if somebody else wants to run a similar statement, the plan is taken from the cache - or shared pool. This is called soft parsing and is less costly than going to the trouble of redoing it entirely.
So, the term "construct" in this context means an in memory structure (like a "C" struct) which (ideally) allows the database to manage user requests better, like a plan for an already executed query.
Obviously, having a plan (construct) in memory will improve the server's response time - no need to read disks and recheck indexes &c. which take time. This process is an entire science in its own right.
From here, "The shared pool is like a buffer for SQL statements. Oracle's parsing algorithm ensures that identical SQL statements do not have to be parsed each time they're executed. The shared pool is used to store SQL statements, and it includes the following components"...
Best Answer
That "other stuff" is everything else that the database needs to run.
That's a whole lot of things, most of which you'll never need to care about at all. If you're curious to see what the different memory areas are in your system, you can query the
v$sgainfo
view and take a peek. Warning: there's a lot of them (1058 entries on a 12c database I'm connected to right now).For instance, you'll find a "resize operation history" bucket which should hold the information about dynamic resizing operations (which you can query via
v$sga_resize_ops
view).Not all of these are documented (mostly because you don't actually care about the majority), but you'll find information about some of them scattered around the web (and occasional bugs related to some of them) if you're curious.
If you're interested about Oracle's memory architecture, the Concepts Guide's Memory Architecture sections is quite detailed already, you'll rarely need to mess with things that aren't mentioned there.