Ok, All I had done (probably wrong) was to tell R:Base that Invno
must be unique. It created the code. So, instead of making a rule
that it needs to be unique, I should turn that off, and make that
index a Unique index or Primary Key? I will try that. Stuff like
this bugs me... it has been this way for 10 years, now it is wrong.
Thanks.
At 09:31 AM 2/11/2010, you wrote:
<<
3 indexes Custno, Invno, IDTrans (all unique numbers)
>>
Is there a reason you need three separate unique indexes in one
table? Reducing the number might help optimize.
<<
1 rule: Ardetail.INVNO IS NOT NULL AND NOT Ardetail.INVNO IN (
SELECT INVNO FROM Ardetail #T1 WHERE #T1.INVNO = Ardetail.INVNO )
>>
I think this might be your problem, or part of it. Every insert or
update of InvNo is causing a SELECT of all the InvNos already in the
table. You can eliminate this by:
1. Recreating the index on InvNo as either a UNIQUE index, or a
PRIMARY KEY constraint and getting rid of the rule.
2. Alternatively (still slow, but probably not SO slow), rewriting
the rule to use NOT EXISTS instead of InvNo NOT IN (and definitely
not NOT InvNo IN).
--
Larry