Extent size for indexes for table with lvarchar
Posted in 2003
Hi, Informix guru's, I've noticed that Informix incorrectly calculates first/next extent sizes for an index in the case, 'varchar' or 'lvarchar' column is present in the particular table (even though that column is not a part of an index) I can't find any SQL-based interface to alter extent size for an index. I assume, that IDS automatically uses the following formula to calculate index extent size from particular extent size for a table: IDX_EXT_SIZE = (KEY_SIZE + 4 + 4*(IS_TABLE_FRAGMENTED)) / MAX_COLUMN_LENGTH * TAB_EXT_SIZE (IS_TABLE_FRAGMENTED is 0 or 1) Note, that in the case LVARCHAR column is present in the table, IDS_EXT_SIZE becomes extremely small, which can cause extremely unpleasant 'out of extents' error, when number of extents in the index comes close to the 'per fragment limit', which is roughly 200 In my case, one extremely big table contains LVARCHAR: though average length of that record is about 30 bytes, that record can potentially very long, up to 2k, this is why we use LVARCHAR for that table. I've set extremely big segment sizes for the table (about 1 GB). For indexes, IDS decided to use 1.5 MB segments!!! Is there any more or less documented way to override this behavior (except manual patching "partition partition")? P.S. We use IDS 9.21uc4 Best regards, Alexey ------------------------------------------ Alexey Sonkin Senior Database Administrator