Very Slow Access Time for KSAM-XL File

Pickering, John (NORBORD) PICKERIJ@norbord.com
Wed, 10 Oct 2001 14:31:36 -0400


Katie

Basically you are reading through the entire file and selecting the records
that fall between your begin and end values. And using the viaindex option
forces retrieval in index order which could be considerably slower than a
simple serial read in physical order. You are getting no value from c-index
other than specifying (rather expensively) the order in which records should
be returned. Quick will still need to read the entire file.

A rethink is in order.

Regards,
JWP

> -----Original Message-----
> From:	Katie Link [SMTP:linkkati@isu.edu]
> Sent:	Wednesday, October 10, 2001 2:08 PM
> To:	powerh-l@lists.swau.edu
> Subject:	Very Slow Access Time for KSAM-XL File
> 
> I'm using Quick and accessing a KSAM-XL file sequentially viaindex.
> There are three indexes in this ksam file and I'm accessing using one of
> the indexes.  I also use select with the file statement.  I'd like to
> select records from the ksam file based on a range of values that I
> request.  There are only 13,000 records in the ksam file but record
> selection takes a very long time (I stopped the process after about 8
> minutes).  Are there any suggestions for making this screen run faster?
> I'm using PowerHouse 8.29D3 on an HP-3000 box.  I have included the
> Quick code and ksam file structure below.  Thanks in advance
> 
> Quick code:
> 
> screen siqs activities find
> 
> temp beg-index char*10
> temp end-index char*10
> 
> file crsksam primary
>   access sequential viaindex c-index request beg-index, end-index
>   select if c-index >= beg-index and c-index <= end-index
> 
> field beg-index
> field end-index
> skip 1
> field c-index
> field c-sess-crs-sec1
> 
> PROCEDURE PATH
>   BEGIN
>     REQUEST BEG-INDEX
>     IF PROMPTOK
>       THEN REQUEST END-INDEX
>     IF PROMPTOK
>       THEN LET PATH = 1
>     IF PATH = 0
>       THEN ERROR "Key/Index required."
>     END
> 
> PROCEDURE FIND
>   BEGIN
>     GET CRSKSAM VIAINDEX C-INDEX SEQUENTIAL
>     END
> 
> BUILD
> 
> KSAM file structure:
> 
>     Record:             CRSKSAM
>     of File:            CRSKSAM
>     Organization:       INDEXED
>     Type:               KSAMXL   (ASCII)
>     Open:               CRSKSAM
>     Description:
>              This file contains the index number related to each
> combined
>              session, department, course + section key and is used to
>              retrieve course information via an index number which is
>              easier to remember and faster to use.
>     Record Size:        36 Bytes
> 
> -- Record Contents --
>     Item                                 Type            Size  Occ
> Offset
>     C-INDEX                              CHARACTER          6
> 0
>     C-SESS-CRS-SEC1                      CHARACTER         15
> 6
>     .C-SESSION1                          CHARACTER          4
> 6
>     .C-DEPT1                             CHARACTER          5
> 10
>     .C-CRS1                              CHARACTER          4
> 15
>     .C-SEC1                              CHARACTER          2
> 19
>     C-SESS-CRS-SEC2                      CHARACTER         15
> 21
>     .C-SESSION2                          CHARACTER          4
> 21
>     .C-DEPT2                             CHARACTER          5
> 25
>     .C-CRS2                              CHARACTER          4
> 30
>     .C-SEC2                              CHARACTER          2
> 34
> 
> -- Index Contents --
> 
>  ** C-INDEX is a 6 byte   UNIQUE PRIMARY  index **
> 
> 
>     Segment                              Type            Size  Ord
> Offset
>     C-INDEX                              CHARACTER          6    A
> 0
> 
> 
>  ** C-SESS-CRS-SEC1 is a 15 byte  REPEATING ALTERNATE  index **
> 
> 
>     Segment                              Type            Size  Ord
> Offset
>     C-SESS-CRS-SEC1                      CHARACTER         15    A
> 0
> 
> 
>  ** C-SESS-CRS-SEC2 is a 15 byte  REPEATING ALTERNATE  index **
> 
> 
>     Segment                              Type            Size  Ord
> Offset
>     C-SESS-CRS-SEC2                      CHARACTER         15    A
> 0
> 
>