
2-146 IBM Informix OnLine Database Server Administrator’s Guide
Structure of a Dbspace Blob Page
Blobs are never modified: only inserted or deleted. When blob data is
updated,anewblobiscreatedandthedatarowisupdatedwiththenewblob
descriptor.Theoldimageofthe rowcontainsthedescriptorthatpoints tothe
obsolete blob value. The obsolete blob is deleted after the update is
committed. Blobs are automaticallydeleted if the rows containing their blob
descriptors are deleted. (Blobpages that stored a deleted blob are not
available for reuse until the logical log in which the COMMIT logical log
record appears is freed. For more information, refer to page 2-157.)
The largest blob that the blob descriptor can accommodate is (2
31
- 1), or
about2 gigabytes. This limitisimposedbythe 4-byte integerthatdefinesthe
sizeoftheblobintheblobdescriptor.Inpractice,blobsizeisprobablylimited
at a size less than 2 gigabytes because of the number of available OnLine
locks that would be required during blob storage.
Structure of a Dbspace Blob Page
Blob data that is stored in the dbspace is stored in a blob page. The structure
of a dbspace blob pageis similarto the structure of adbspace datapage. The
only difference is an extra 12 bytes that might be stored along with the blob
data in the data area.
Blobs can share dbspace blob pages if more than one blob can fit on a single
page or if more than one trailing portion of a blob can fit on a single page.
Refer to IBM Informix Guide to SQL: Tutorial fora general discussion of how to
estimate the number of dbspace blob pages needed for a specific table.
Each segment of blob data stored in a dbspace page may be preceded by up
to 12 bytes of information that do not appear on any other dbspace page.
These extra bytes contain up to three pieces of information:
■ A 4-byte blob timestamp for this blob segment (required)
■ A 4-byte forward pointer (rowid) to the next portion of the blob
segment, if one exists (optional)
■ A 4-byteblob timestampstoredwith theforwardpointer tothe next
portion of the blob segment (required if a forward pointer exists)
Komentáře k této Příručce