Any way to "lazy load" CLOB data?

David S

Member
I'm noticing that the presence of CLOB fields significantly impacts performance when loading a table.

I've got a field being used in memos where the vast majority of the records have fairly small amounts of data in that field. However, there are a handful that are over 4000, making it impossible to use a varchar2 field. So I set it as a CLOB, but that really slows down startup when I open the table. (I do a select * from xxx)

Is there any way to "lazy load" CLOB data until I actually load a specific record? Other than splitting that field into a separate table and explicitly loading it for only that record as it's referenced?
 
Last edited:
Would it work to create a virtual (calculated) field that's used instead of the CLOB field? Would I need to list the fields in the table's SQL property rather than "select *"?

At program load time, I can display nothing. But once the program has started up, the calc field can explicitly load from the CLOB field.

But what happens if I want to update the value of the CLOB field? How does a calc field deal with that?
 
I think the best method is to exclude the CLOB from the query, and explicitly fetch and display the CLOB data when the user visits a record.
 
Back
Top