query optimisation

Dave Matthews matthews at GREENGENES.CIT.CORNELL.EDU
Sun Aug 15 23:38:50 EST 1999


Hi jean,

> actually is Probe was an indexed tag (declared in subclasses.wrm)

I searched through the newsgroup archives and couldn't find mention of
this use of subclasses.wrm, but I saw it described in a message you sent
to someone else.  Based on this, I used the syntax

Class Sequence
Index Probe

After reading models, I do indeed get "query find sequence probe"
lightning fast.  This is nice.  But "query find sequence probe=a*" 
is still slow.

Also, now tace and gifaceserver take a lot longer to start up than they
used to.   21 sec to get the "acedb>" prompt!

Here are my results for the indexed tag Probe and the non-indexed tag 
Species, neither of them level-1 tags.  Each query was run twice in a 
row to test for caching effects, in the order listed.

					Time (sec)
query find probe; follow sequence	 3, 0
query find probe a*; follow sequence	 1, 0
query find sequence probe		 3, 2
query find sequence probe=a*		38,36
query find species; follow sequence	 0, 0
query find species h*; follow sequence   0, 0
query find sequence species		24,22
query find sequence species=h*		22,23

Size of the classes:
Probe       8994
Probe a*     386
Species     1542
Species h*   199
Sequence   83443

Using ace4_7l on a Sparc2 with no other cpu load.  Only half the RAM was 
allocated during the test.


This returns me to my original question: Since "query find A; follow B" is
so much faster than "query find B A" when the number of A objects is less
than B objects, can't ACEDB test for this condition and automatically use
the former strategy when advantageous, regardless of which way the query is
formulated?

- Dave




More information about the Acedb mailing list