Parsing and Optimizing

Having spent so much time looking at how the bits and pieces of the shared pool are used to handle the library cache content, we can now take a little time to think about the sequence of activity as we make a parse call for a statement that hasn’t previously been optimized.

We do the syntactic check and determine that it’s legal SQL.

We hash the string to get a hash value, work out the relevant library cache hash bucket, and check the bucket to see if we can find a matching string.

We don’t, so we start the semantic analysis of the string, checking object names, and so forth, in the string against dictionary cache—which means we have to keep hitting dictionary cache latches to check dictionary cache entries, and may mean ...

Get Oracle Core: Essential Internals for DBAs and Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.