Confusion - Cursor in shared pool - Internals
897368Nov 7 2011 — edited Nov 8 2011Hi Gurus ,
Theoretically i knew that if any sql is executed ORACLE stores all the information (metadata,execution plan ) etc..while parsing in sharedpool(library cache )
If same query is excuted again , ORACLE shares the CURSOR related to that.(soft parse)
Now i am always confused with the term CURSOR.
IN this context what is meant by CURSOR.
For instance if i am running the following query for the first time
select COl1 from a.test;
It will verify syntax , check the existence of user a ,table test and column col1 and then optimizer go through different possible execution plans and finally go with the one which has low cost
So now i end up with , sql information (sql_id,hash_value,etc....) and execution plan and i always imagine that this information is stored in Memory strutures of Shared pool
And i always confused that this being refered as cursor.Is this information stored something like a PL/SQL cursor ?If so why as a CURSOR why not just like plain information (the way any type data stored )
How can i see how exactly parse infomation is stored in sharedpool (is there any dump mechanism for that ???)
Is it stored something like
open cursor AJKKL
< all PARSE information >
close cursor
etc...
Please help me in visualizing this concept
Thanks