MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » July 2014

Re: Variable length fields question



fixed

Comments in-line John

On 2014-07-29, at 5:07 PM, "Voris, John" <john.voris@xxxxxxxxxxxxx> wrote:

I have been following the discussion with interest.
"The OS is smart enough to pad out the field" when processing, and RPG buffers are sized at the maximum."

Here is our case: our Bill of Lading numbers are defined as 30A. But in one file, CUPMIFH, the BOL was defined as 15A.
Most of our Bills of Lading are 7 or 8 char, and it was only once or twice we found the 15A exceeded.
We have installed a fix in the RPG program where this surfaced as a problem, so we have the problem resolved for now.

But when / if we were to address this mismatch . . . by redefining the problem file, . . . would it make sense to define the BOL field as 30A VARLEN(15) ?
Are there any advantages to making the field VARLEN ?

.+ One advantage we see is that SQL joins would be more reliable and simpler to construct.
. - But we still have to recompile all RPG programs that are using this problem file, correct ?

So if we are recompiling, we are more likely to go with the existing 30A and not use VARLEN.

As far as saving DASD space, I believe it would be trivial, as the detail file with the field BOL is only 2.2 GB ( 1.4 mill records ),
and there are other files with BOL scattered throughout the module in question. But the space savings of 5A ( actually 5A - 2A for LEN ) is nominal.

I think it would probably cost you space. There is an overhead associated with a VARLEN (can't recall how big but certainly likely to be at least 16 bytes) plus the Varlen field has a 2 byte length header. This is a case where switching to Varlen should not be done for space saving reasons. In fact I would tend to use the full length as the reserve i.e VARLEN(30).

So I assume that if we really wanted to gain any advantage,
it would be to convert the entire system to use the VARLEN(15).

And in actuality, I believe that if we defined the system using SQL Tables and Views instead of DDS,
then we would likely gain more in CPU savings than anything we might achieve with database field sizes.

I am still waiting to see any real evidence of this - even though it is the sexy thing to do right now. In most cases I've looked at, while the performance gains were impressive, the switch to DDL was accompanied by other changes (indexes etc.) that would have provided similar gains on a DDS based system. I would use DDL for any new tables, but have yet to be convinced that a retrofit is worth the effort.



John Voris
Crown Americas LLC

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com









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