I posted to -sql the other day about an atrociously slow DELETE on a table that has two FKs to a 'parent' table ... if the # of records in the table that match the condition is 1, its fast ... in the sample I'm working with, there are 1639 records in the table ...


Now, I'm making a guess that for each row that needs to be DELETEd, the FK forces a 'SELECT * FROM fk_table WHERE fk = value', to check for its existence ... so, in this case, we're talking about 1639*2 SELECTs to the backend ... is this correct?

If this is correct ... is 7.4/8.0 any smarter when it comes to 'duplicates'? Somehow keeping a list of 'fk = value's that have already been checked, instead of re-issuing a new SELECT for each row? In the case of the table I'm working on, all row DELETEs would have the same result, as the delete is *on* the FK value itself, so the first check of the fk_table should be all that is required ...

Not sure if this is even possible ... or is already done ...

Note that I'm working on a 7.3 database right now, so if this is something that is improved with 7.4, please let me know ..

 ----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: [EMAIL PROTECTED]           Yahoo!: yscrappy              ICQ: 7615664

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
     subscribe-nomail command to [EMAIL PROTECTED] so that your
     message can get through to the mailing list cleanly

Reply via email to