× 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.



Even without indexes, performance *might* be good (not very often though).

If Fetch First Row Only is specified and the the engine chooses to read sequentially and a row is found in the first few rows read, then performance will seem good. No more reads will occur.

However, the solution below would continue until all 10 million records are read.

Best, as you know, to have indexes and to write the SQL so that it stops after finding a matching record.

________________________________________
From: rpg400-l-bounces@xxxxxxxxxxxx [rpg400-l-bounces@xxxxxxxxxxxx] on behalf of Charles Wilt [charles.wilt@xxxxxxxxx]
Sent: 21 December 2012 13:03
To: RPG programming on the IBM i / System i
Subject: Re: SQL Question

Without an index...any solution will perform poorly...

The recommended why to check for existence is by using the EXISTS clause

// important to init found
// as if there are no records existing
// it is left unchanged
found = *OFF;
exec SQL
select '1' into :found
from sysibm/sysdummy1
where exists (select * from myfile
where key = :mykey);

HTH,
Charles


On Fri, Dec 21, 2012 at 3:41 AM, McGovern, Sean
<Sean.McGovern@xxxxxxxxxxxx>wrote:

This is not recommended as performance may be poor.

Imagine if there are 10 million rows on the table and no suitable index
for the WHERE clause.

This solution may result in all 10 million records being read just to
determine if 1 row exists (which may be the first row read) !

________________________________________
From: rpg400-l-bounces@xxxxxxxxxxxx [rpg400-l-bounces@xxxxxxxxxxxx] on
behalf of Alan Shore [ashore@xxxxxxxx]
Sent: 19 December 2012 20:39
To: RPG programming on the IBM i / System i
Subject: RE: SQL Question

Another way is
Select count(*) from file where value = whatever

Alan Shore
Programmer/Analyst, Direct Response
E:AShore@xxxxxxxx
P:(631) 200-5019
C:(631) 880-8640
"If you're going through Hell, keep going" - Winston Churchill


-----Original Message-----
From: Alan Shore
Sent: Wednesday, December 19, 2012 3:38 PM
To: RPG programming on the IBM i / System i
Subject: RE: SQL Question


Select * from file where value = whatever

Alan Shore
Programmer/Analyst, Direct Response
E:AShore@xxxxxxxx
P:(631) 200-5019
C:(631) 880-8640
"If you're going through Hell, keep going" - Winston Churchill

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Jeff Young
Sent: Wednesday, December 19, 2012 3:29 PM
To: RPG programming on the IBM i / System i
Subject: SQL Question

All,
I am having a brain freeze (aka senior moment).
I want to use SQL to determine if a record exists in a file for a given
value.
There will be either only 1 record in the file for the value, or it will
not exist.

Thanks,

--
Jeff Young
Sr. Programmer Analyst
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.


Disclaimer: This message contains confidential information and is intended
only for the individual named. If you are not the named addressee you
should not disseminate, distribute or copy this e-mail. Please notify the
sender immediately by e-mail if you have received this e-mail by mistake
and delete this e-mail from your system. E-mail transmission cannot be
guaranteed to be secure or error-free as information could be intercepted,
corrupted, lost, destroyed, arrive late or incomplete, or contain viruses.
The sender therefore does not accept liability for any errors or omissions
in the contents of this message, which arise as a result of e-mail
transmission. If verification is required please request a hard-copy
version. Any views or opinions presented are solely those of the author and
do not necessarily represent those of the company.
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


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.