MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » July 2008

Re: SQL - RRN() not in order



fixed

The index may be used when either large number of deleted rows exist or when the amount of memory to page is easily managed by index vs the dataspace. That is because the index has the RRN [or RRN can be easily calculated from], and that index can be more efficiently paged than the entire dataspace with a full table scan. So when all of the information is available in an index which is smaller than the data, it can be much more efficient to use the index instead, especially when there is no selection.

Note: To further clarify on the Join Logical File index... There is not just one index for all three files. In the three file join, the database creates the primary index as declared in the DDS, and then creates additional indexes on the second and third file which assist in effecting matches for join and selection. Given no selection, each index created on each file is much like a CREATE INDEX which is used for implementation of a dynamic join when the JLF is opened; just that there is not a separate object, to which the index can be associated.

Regards, Chuck

Luis Rodriguez wrote:

I agree (and am very conscious of) with the fact that the only way to
guarantee a result ordered is with the ORDER BY clause.

That said, what I don't really understand is SQL using an index for reporting the RRN(). One would imagine that kind of things would be better doing a table scan.

Terrence Enger wrote:

Let me remind people--I confess, myself included--that if
you want results in a specific order, you must specify that order
explicitly. <<SNIP>>

Luis Rodriguez wrote:

Running some tests (V5R3) I found this strange (at least for me)
results with SQL RRN: (FILE is a (DDS) file with no index and
zero deleted records) Select RRN(file) from FILE;

<<SNIP unordered SELECT RRN(A) vs ordered SELECT RRN(A),A.* >>

Running the sentence under debug (STRDBG) shows that SQL decided
to use an index (LF). My question is: Why does RRN() needs an
index?. Moreover, the selected index is a join file(3 Files!!) This is not giving any problem for me right now, I'm just curious
why this is so. Any ideas?





Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot 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 here. If you have questions about this, please contact