Re: Informix help needed
Posted in 1991
Timity Coldenhoff (ecs50145@zach.fit.edu) writes:
> 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?
Referencing our configuration (AT&T 3B2 600/G), the answer would be an
unqualified "yes". Online wants the entire mirror drive available: it is a
true mirroring system, that is, it is an exact duplicate of the other drive.
> 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:
> $ select *
> into $host_var
> from table_x
> where ((col1 = $hv1) and (col2 = $hv2) and (col3 = $hv3));
> 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?
I don't know exactly how you're executing that SQL statement, but what we
have found at this site is that DECLAREing a cursor and using FETCH NEXT
inside a WHILE loop is intrinsically faster than any number of individual
SELECT statements. (Of course, this presupposes you at least have RDS or
I4GL available.)
> Final question: Are you still with me? There is very little technical
> information provided in the Informix manuals.
Sad, but true.
> For instance, how are shared memory buffers managed? . . .
Well, now you're beyond me - I'm not a techie type, just a good,
old-fashioned programmer/analyst. Good luck!
Bill Williams
------------------------------------------------------------------------------
Milnet (Internet) address: bwilliams@aqlan.ssc.af.mil
--------------------------- D I S C L A I M E R ------------------------------
The opinions expressed here do not reflect the views of the US Air Force, the
Department of Defense, the US Government, or anyone else but ME. So there.
------------------------------------------------------------------------------
A 4GL "CUTTING EDGE" TECHNOLOGY SITE: AT&T 3B2 WITH ONLINE (*GASP!*)
------------------------------------------------------------------------------