For Object File System tables, DATABLOCKSIZE and MERGEBLOCKRATIO have default settings that you cannot change.
You can control the default size for multirow data blocks on a table-by-table basis in a CREATE TABLE or ALTER TABLE request using the DATABLOCKSIZE and MERGEBLOCKRATIO options:
Disk arrays can scan at higher rates if the I/Os are larger, but larger I/Os can be less efficient for row-at-a-time access which requires that the entire data block be read for the relatively few bytes contained in a row. Cylinder reads enable smaller data blocks for row-at-a-time access and large reads for scans.
For average workloads, the benefits of using large data blocks outweighs the small penalty associated with row-at-a-time access up to 64 KB. Setting the data block size requires more judgment and analysis for 128KB and 1MB data blocks where the penalty for row-at-a-time access becomes measurable.
Specified Clause | Data Block Size |
---|---|
DATABLOCKSIZE in CREATE TABLE | Data blocks can grow to the size specified in DATABLOCKSIZE. For any row, Vantage uses only the data block size required to contain the row. If you use block level compression, adjust DATABLOCKSIZE to the maximum, 255 sectors.
|
DATABLOCKSIZE in ALTER TABLE | Data blocks can grow to the size specified in DATABLOCKSIZE when the row size requires the growth. Whether data blocks are adjusted to that new size immediately or gradually over a long period of time depends on the use of the IMMEDIATE clause. |
MERGEBLOCKRATIO in CREATE TABLE | Vantage limits attempts to combine blocks if the result is larger than the specified percent of the maximum multirow data block size. |
MERGEBLOCKRATIO in ALTER TABLE | Size of the resulting block when multiple existing data blocks are being merged has a upper limit. The limit depends on whether Vantage determines that logically adjacent data blocks can be merged with the single data block being modified. Data blocks can still be initially loaded at the PermDBSize specification or the data block size specified with the DATABLOCKSIZE option. Merges occur only during full-table modifications. |
IMMEDIATE clause | Rows in all existing data blocks of the table are repacked into data blocks using the newly specified size. For large tables, this can be a time-consuming operation, requiring spool space to accommodate 2 copies of the table while it is being rebuilt. If you do not specify the IMMEDIATE clause, existing data blocks are not modified. When individual data blocks of the table are modified by user transactions, the new value of DATABLOCKSIZE is used. Thus, the table changes over time to reflect the new data block size. |