The dbms_lob.createtemporary
function takes three parameters, one of which specifies if the temporary LOB is to be "read into buffer cache or not". I'm not entirely clear on what that means. More importantly, when do i want my LOB in the buffer cache and when do I not want it there?
Temporary LOBs are not stored permanently in the database like other data. The data is stored in temporary tablespaces and is not stored in any tables. This means you can CREATE an internal temporary LOB ( BLOB , CLOB , NCLOB ) on the server independent of any table, but you cannot store that LOB.
The DBMS_LOB package provides subprograms to operate on BLOBs, CLOBs, and NCLOBs. You can use DBMS_LOB to access and manipulate specific parts of LOBs or complete LOBs. You can also refer to "Large objects (LOBs)" in Oracle TimesTen In-Memory Database PL/SQL Developer's Guide.
n createtemporary: The procedure createtemporary creates a temporary CLOB or BLOB and its corresponding index in the user default temporary tablespace. n instr: Used to return the matching position of the nth occurrence of the pattern in the LOB. n getlength: Used to get the length of specified LOB.
Basically if the same lob is going to be accessed several times, it will improve performance if the lob is in the cache.
see: http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm
From the link above 'Using the CACHE option results in improved performance when reading and writing data from the LOB column. However, it can potentially age other non-LOB pages out of the buffer cache prematurely.'
In simple words, that means to be in memory. I don't know how much stays there, but almost sure is put there at creation. Learn here some concepts.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With