× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Already have the correct index. I have run this thing in debug, and though it was creating a
temporary access path (using .0 seconds), I manually created the index it was looking for. Still it
runs very slowly. If I put the thing in a select to do a join without the exists clause, it's fast.

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Luis
Colorado
Sent: Thursday, February 07, 2008 3:08 PM
To: Midrange Systems Technical Discussion
Subject: RE: SQL Update Performance

I don't think you can force the join order, and I don't think you need to.

I would suggest to create (if not there already) the following indices/logicals:

1. Create a logical or index for ADDRINP based on field "akey" (I guess this already exist).
2. Create an index or logical for CONTRCP ordered by CINACT and CTRADR

Why don't you give it a shot? The query optimizer should detect your access paths, and this baby
should fly.

Please let us know it went.

Thanks!

Luis

P.S. If that should fail, try creating another index or logical for CONTRCP ordered by CTRADR and
CINACT.


-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Murphy,
Mark
Sent: Thursday, February 07, 2008 2:57 PM
To: midrange-l@xxxxxxxxxxxx
Subject: SQL Update Performance

I have an update that I am trying to do on V5R2:



UPDATE ADDRINP ad1

SET ad1.Addr1 = 'this is a test'

WHERE exists(

select * from contrcp ctr where

ctr.cinact = 'CC01' and

ctr.ctradr = ad1.akey)



This statement takes forever to run because of the join order the optimizer is choosing. ADDRINP is
in Join position 1 and CONTRCP is in join position 2. This is most likely because I am updating
ADDRINP. Only problem is that there are 3,000,000 records in ADDRINP, and putting it in join position
1 forces the whole file to be read in order to pick out 6 records to be processed. Can anyone think
of a way to force CONTRCP to join position 1?



Mark Murphy

Star Base Consulting, Inc.

e: murphym@xxxxxxxxxx




This e-mail transmission contains information that is intended to be confidential and privileged. If
you receive this e-mail and you are not a named addressee you are hereby notified that you are not
authorized to read, print, retain, copy or disseminate this communication without the consent of the
sender and that doing so is prohibited and may be unlawful. Please reply to the message immediately
by informing the sender that the message was misdirected. After replying, please delete and otherwise
erase it and any attachments from your computer system. Your assistance in correcting this error is
appreciated.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.