Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!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 Subject: Informix help needed 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) Distribution: usa Organization: Florida Institute of Technology, ACS, Melbourne, FL Lines: 58 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 --------------------------------------------------------------------------