Informix help needed
Posted in 1991
Path: emory!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!boingo.med.jhu.edu!haven!uflorida!winnie!zach!ecs50145
From: ecs50145@zach.fit.edu ( COLDENHOFF)
Newsgroups: comp.databases
Summary: help!
Keywords: informix, esql/c
Message-ID: <2225@winnie.fit.edu>
Date: 28 Mar 91 14:30:38 GMT
Sender: usenet@winnie.fit.edu
Reply-To: ecs50145@zach.UUCP ( COLDENHOFF)
Organization: Florida Institute of Technology, ACS, Melbourne, FL
I have a few questions about Informix On-Line and Informix ESQL/C
that I hope somebody can help me with...
My system is two Dec 5400 RISCs running Ultrix 4.1. I have set up On-Line to
use one 400M disk as a primary dbspace, and a separate 400M drive to
be a mirror. I have another disk, approx. 200M of which is used as
a different space, which is also mirrored to another drive. When I
try to get the status of either of these spaces, tbmonitor tells me
that a fraction of the primary is used (which I expect) and that ALL of
the mirror is used (which I am confused about). After going over the
docs many times, I cannot find any reference to this particular situation.
Does Informix actually go out and grab the entire mirror space? Or have
I made some error in configuration? By the way, these two spaces are
specified as two separate raw devices. The idea here is when CPU 1 fails,
CPU 2 takes over and has access to the mirrored data (both buses are wired
to the drives - they are not clustered).
Second question: I need to perform a large number of selects on a fairly
large table in a very short period of time. The very basic numbers here
are 5000 selects on a table with 250,000 rows, each row having 60 bytes.
One unique composite index set up on three columns. Each select returns
exactly one tuple. Essentially, I have the following:
...cut...
$ select *
into $host_var
from table_x
where ((col1 = $hv1) and (col2 = $hv2) and (col3 = $hv3));
...cut...
which is done 5000 times, getting a different row each time. This needs
to be done within two minutes. I haven't been able to do it in less than
three. I have set up shared memory to no swapping, with 4500 buffers
which forces a large amount of the data to be cached.
So, are there any weird quirks, kludges, or even simple advice to eek
out a few milliseconds? That time constraint is critical, and any and all
suggestions, no matter how simple are appreciated. I am contemplating
going into the pre-processed code and trying to trim that down also...
would I be wasting my time?
Final question: Are you still with me? There is very little technical
information provided in the Informix manuals. For instance, how are
shared memory buffers managed? Why is it that 45,000 buffered reads
are required to perform 5000 selects (ref. above question)? If these
are B-tree overheads, can they be trimmed down? Are there books that
can help me with these questions?? Is there by any chance any ftp sites
or other Internet sources of Informix information (tech specs, examples,
kludges, etc. )?
Thank you in advance for any and all information and/or pointers.
Please respond to: ecs50145@zach.fit.edu
--------------------------------------------------------------------------
Timity Coldenhoff ecs50145@zach.fit.edu
via Florida Institute of Technology Academic Computing Services
--------------------------------------------------------------------------