× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 16-Jul-2014 08:31 -0500, Charles Wilt wrote:
On Wed, Jul 16, 2014 at 12:40 AM, Roger Harman wrote:

After reading a number of posts over time about slow IFS save
issues, I was wondering.

Would there be any benefit to saving them as CLOB's in a table
instead of as IFS objects?

I have no experience whatsoever with this but just wondering what
are the pro's and con's and if anyone has tried it.

Interesting thought...though I assume you meant BLOB instead of
CLOB...

Based on what little I know about how BLOBs are stored and the fact
that the OS backs up large objects faster than a bunch of small
ones, I would expect the answer to be yes.

But I don't know for sure. Might be worthwhile asking IBM about.

I suspect the reduction in time required to save can be rather dramatic, and as I recall, that is supported empirically, even when indexing and authority\access-control requirements also are moved into the database; not sure, perhaps in some /customer experience/ reports.

As I recall, each STMF is stored as a "dataspace" object. However the STMF is like a database file /member/ in that there is also a "cursor" object. Thus for 10M STMF, a request to save would have to /touch/ and page 20M object headers separately. So even if each LOB were implemented as a separate dataspace object [they are not, except at run-time they may be], then already the amount of objects paged is reduced to an absolute maximum of 10M+2; i.e. a request to save that same data as BLOB in row data would require /touching/ [likely far] *fewer* than 10M+2 objects, paging the database dataspace and db cursor and potentially every LOB. IIRC however, each LOB [at least any that does not overflow some minimal accommodation] is stored as part of the variable length [variable segment] overflow defined for the VARLEN\varying-length columns of the] database dataspace; many fewer objects would need to be /touched/ by the save, than the fixed minimal number for saving STMFs. Note: LOBs are implicitly VarLen. The overall number of pages for the actual data would be similar, although due to rounding for allocations and alignment, the database pages likely can and will be more compact; thus further reduction in overall data paging with saving as database LOB data, as contrasted with saving as STMFs.

The following seems to support, at least in part, some of my recollection:
<http://archive.midrange.com/midrange-l/200911/msg01287.html#>
"...
You should also be aware that VARCHAR columns with a small allocate value can cause performance problems if the table also contains LOB (large object) columns and the VARCHAR column is referenced frequently. The VARCHAR and LOB columns are all stored in the same auxiliary overflow storage area. This means that if you reference one of the columns in that area, the database has to page in all the overflow storage columns. In general, DB2 UDB for iSeries tries to avoid paging in large LOB columns, but it can't be avoided when the row contains VARCHAR columns that are stored in the same auxiliary storage area.
..."


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.