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



Hi guys,

here are some basics:
1. DDS described logical file:
   - Field selection 
   - Record selection by adding Select/Omit clauses
   - Sort sequence by adding key fields
   - Join between several physical files
   - Access path maintenance *IMMED or *REBLD
     (*IMMED if an unique key is specified on the physical file)

2. SQL defined index
   - contains only key fields
   - Access path maintenance always *IMMED

3. SQL defined view
   - everything that is possible with a SQL select statement
     with the exception of the ORDER BY clause.
   - It is possible to create a view over a view.
   - Access path maintenance alywas *REBLD

SQL view AND index can be used in the F-Specifiations like any
DDS described logical file. But an SQL view will never have a
specified sequence.

Within a SQL statement, only physical files, DDS described logical
files, SQL views or physical files can be specified, but never an index.
Specifying a logical file in a SQL statement will not force the 
query optimizer to use the access path specified in the logical file.
Specifying a logical file in a SQL statement will cause the query
dispatcher to reroute the query to the classical query engine (CQE),
so it cannot take advantage of the new SQE (SQL query engine).

Indexes are used by the query optimizer to determine the optimal
access path and to create the access plan. 
(If no SQL index is defined, the query optimizer will
consider the keys defined in logical files for searching the 
optimal index).

An SQL index has a page size of 64K, while a logical file only have a
page size between 8 and 32K (if you have some old keyed logical files
created before release V4R1M0 the page size even may be 4K).
An DDS described logical file can share access path with an other
logical file, that have the same or more key fields. It also can share
access path with SQL indexes.

An SQL index will only share access path with an other SQL index, if
it contains the same key fields in the same order.

Birgitta

-----Ursprungliche Nachricht-----
Von: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]Im Auftrag von rob@xxxxxxxxx
Gesendet: Freitag, 1. April 2005 00:12
An: RPG programming on the AS400 / iSeries
Betreff: Re: SQL


Before starting your query, start debugging.  For example:
STRDBG UPDPROD(*YES)
STRSQL
Then run your query.  When you exit the STRSQL do
DSPJOBLOG
You may see messages in there like "Dude, I might run faster if you create 
an index on file IMPILN00 in library ILMOLIB over the 
ILNSOLDTO field."

So, if you want to speed things up, you do a
CREATE INDEX ILMOLIB/IMPILN00L1
ON ILMOLIB/IMPILN00
(ILNSOLDTO ASC)

Now, there is a difference between Index, View and Logical File.
An index only creates a sort order.  You do not more than one physical 
file.  You do not select which fields to appear.  You do not select which 
records to appear.
A View can be created over one or more files.  You can select which fields 
to appear.  You can select which records to appear.  You CANNOT set a sort 
order.
A logical file can combine both of these functions.  There are some things 
a logical cannot do.  Like BLOB fields, UDF's and a host of other things.
I forget which, but only one of the index or view family can be used on a 
F spec in RPG, if you want to use traditional I/O versus imbedded SQL on 
occasion.  Basically that is the ONLY advantage of a logical file.  Well, 
I suppose if you want to get into the debate on whether it's better to 
store your source in QDDSSRC or QSQLSESS you can go there, but that's more 
a matter of style.

Rob Berendt
-- 
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com





"Douglas W. Palme" <dns@xxxxxxxxxxxxxxxxxxxxx> 
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
03/31/2005 04:49 PM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc

Subject
Re: SQL






That helped, thanks, another question kinda related, I noticed that when 
the 
query starts it displays the following: "Query Running.  Building Access 
Path for file IMPILN00 in ILMOLIB"

Can someone explain what that means building access path?


On Thu, 31 Mar 2005 13:43:20 -0800, Tony Carolla wrote
> Try this:
> 
> select ilnsoldto, sum(ilneprice) from impiln00 group By ilnsoldto
> 
> On Thu, 31 Mar 2005 13:40:20 -0800, Douglas W. Palme
> <dpalme@xxxxxxxxxxxxxxxxxxxxx> wrote:
> > As a follow up to the questions I had the other day, I've ordered the
> > appropriate license key for the SQL and have started working on 
learning
> > embedded sql to use with my rpg.
> > 
> > Needless to say, it'll delay some reports a bit but I think in the 
long 
run
> > it'll help.
> > 
> > One question I do have, I am running the sql interactive query and I 
am 
just
> > playing with it a bit, but have run into a problem that maybe one of 
you 
can
> > help me out with; considering the slightly different syntax between 
sql 
for
> > the iSeries and what I am used to.
> > 
> > I have a PF that cotnains among other fields, ilneprice (which 
contains
> > extended price amount), and a ilnsoldto field which is a reference 
field 
for
> > the customer number.
> > 
> > When I run 'select ilnsoldto' by itself it runs fine, when I run sum
> > (ilneprice) by itself its fine but when I run the following command it 

tells
> > me the ilnsoldto field is incorrect:
> > 
> > 
> > 
> > Suggestions? Comments?
> > 
> > --
> > This is the RPG programming on the AS400 / iSeries (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.
> > 
> >
> 
> -- 
> "Enter any 11-digit prime number to continue..."
> -- 
> This is the RPG programming on the AS400 / iSeries (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.


--
Open WebMail Project (http://openwebmail.org)

-- 
This is the RPG programming on the AS400 / iSeries (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 AS400 / iSeries (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.