Improving metadata I/O for smart large objects
The metadata pages in an sbspace contain information about the location of the smart large objects in the sbspace. Typically, these pages are read intensive. You can improve metadata I/O by redistributing it.
- Mirror the chunks that contain metadata.
For more information about the implications of mirroring, see Consider mirroring for critical data components.
- Position the metadata pages on the fastest portion of the disk.
Because the metadata pages are the most read-intensive part of an sbspace, place the metadata pages toward the middle of the disk to minimize disk seek time. To position metadata pages, use the -Mo option when you create the sbspace or add a chunk with the onspaces utility.
- Spread metadata pages across disks.
To spread metadata pages across disks, create multiple chunks in an sbspace, with each chunk residing on a separate disk. When you add a chunk to the sbspace with the onspaces utility, specify the -Ms option to allocate pages for the metadata information.
Although the database server attempts to keep the metadata information with its corresponding data in the same chunk, it cannot guarantee that they will be together.
- Decrease the number of extents each smart large object occupies.
When a smart large object spans multiple extents, the metadata area contains a separate descriptor for each extent. To decrease the number of descriptor entries that must be read for each smart large object, specify the expected final size of the smart large object when you create the smart large object.
The database server allocates the smart large object as a single extent (if it has contiguous storage in the chunk) when you specify the final size in either of the following functions:
- The DataBlade® API mi_lo_specset_estbytes function
- The ifx_lo_specset_estbytes function
For more information about the functions to open a smart large object and to set the estimated number of bytes, see the HCL OneDB™ ESQL/C Programmer's Manual and HCL OneDB DataBlade API Programmer's Guide.
For more information about sizing extents, see Sbspace extents.