Informix 7.1 Online -- Technical Question
Posted in 1995
Hi,
I wrote an article about a week ago asking some questions about Informix 7.1
performance, and whether the system could be processor-bound. I'm using
an RS/6000 running AIX 3.1.2 with 128MB of RAM, and a Shared memory ceiling of 50MB.
I'm developing a model of how our system performs given different client
configurations, and have found that the system is indeed processor bound.
So, progressing heartily ahead, I came up with a formula that I thought would
express the amount of work that the Informix database was doing for each
update to the database tables that we perform, and used this formula to predict the
number of CPU seconds Informix would require to process our data.
This model has proven very accurate.
I use the assumption that each insertion into the databases incurs a cost
roughly equivalent to the LOG of the number of rows in the table (this follows
naturally from my assumption that the depth of the tree which is index searched
is logarithmic with respect to the number of elements in the table).
BUT, what I have learned through using "oncheck -pT", is that most of our tables
have indices of DEPTH 3, (indicating a very large number of keys in each tree
level)
Given this, I would expect that the amount of time to
find the item in the index would be roughly constant, assuming the next node
traversed in the index tree is chosen by a constant time hash function, or some
such.
The burning question then, to Informix personnel, gurus, or anyone, is :
WHY would the amount of time to perform an operation on a table vary with the
logarithm of the number of rows, if the indexes used to search the tree are
roughly the same depth?
Am I missing something here? Is there another process involved that is O(logn) ??
Thanks for any help in advance,
Scott Miller
Siemens Rolm Communications