Re: Where are FillFactors stored in system tables?
Posted in 1997
Oooooohhhh....you hit one of my little Informix pet peeves, brace
yourself....
First off, there is no place where the current / ongoing fillfactor of
an index is stored. You set it in the onconfig file, and that's in
theory how indexes *should* get built. After that, anything can happen
to them. Kinda like clustered indexes.
One little gotcha though. You only get the fillfactor you specify *if*
(and only if...) the index is unique. A nonpublicized quirk of the
index build algorithm is that if the index isn't unique, you can get
indexes that are truly dreadfully built. I've seen some (fairly
duplicative...) as bad as 45% actual fillfactor right after build with
fillfactor specified as 90 or 100 in onconfig. Yick.
In theory, this should about double the bufreads and possibly the disk
i/o's to process the quite sparse index. As anal as Informix seems to
be about disk i/o's and even context switches of all the goofy things
(don't get me started on this one...), it seems silly to be so wasteful
here. Maybe the next best algorithm is 20 times slower, who knows??
Futz around with "oncheck -pT" to see what I mean....
Greg
p.s. fortunately, there really aren't all that many Informix quirks
that really irk me...
David Gilbert wrote:
>
> Once you create an index with a fill factor, where does Informix store
> it in the data dictionary?
>
> For example, I would like to get a list of all the indexes with Fill Factors
> less that 90.
>
> Any help would be greatly appreciated. Thanks!
>
> David Gilbert (xanadu@mcs.net)