Skip to main content

When I run HASH.HELP.DETAIL APPOINTMENTS I get the following summary

----

>HASH.HELP.DETAIL APPOINTMENTS

File APPOINTMENTS  Type= 5  Modulo= 149  Sep= 8      14:58:16  15-07-25  PAGE
 1

     138  total keys in file
     578  total bytes in all keys
       3  smallest key
      10  largest key
    4.19  average bytes per key

     138  total records in file
  696388  total bytes in all records
    2492  smallest record
    6964  largest record
 5046.29  average bytes per record

       0  average records per group  (optimized)
    5009  average bytes per group  (optimized)

Press any key to continue...

----

When I run FILE.STAT APPOINTMENTS I get the following results:

----

>FILE.STAT APPOINTMENTS
File name                               = APPOINTMENTS
File type                               = 5
File style and revision                 = 64BIT Revision 12
NLS Character Set Mapping               = NONE
Number of groups in file (modulo)       = 149
Separation                              = 8
Number of records                       = 138
Number of physical bytes                = 1118208
Number of data bytes                    = 700880

Average number of records per group     = 0.9262
Average number of bytes per group       = 4703.8926
Minimum number of records in a group    = 0
Maximum number of records in a group    = 4

Average number of bytes per record      = 5078.8406
Minimum number of bytes in a record     = 2496
Maximum number of bytes in a record     = 7008

Average number of fields per record     = 340.0000
Minimum number of fields per record     = 340
Maximum number of fields per record     = 340

Press any key to continue...
Groups   25%     50%     75%    100%    125%    150%    175%    200%  full
          50       0      12       5       7      32      15      28
>

----

The per-record results are different.

Does anyone know why?

I am trying to settle on a tool to use when determining the best separation for a file, and having 2 different results from different tools is not helping.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

When I run HASH.HELP.DETAIL APPOINTMENTS I get the following summary

----

>HASH.HELP.DETAIL APPOINTMENTS

File APPOINTMENTS  Type= 5  Modulo= 149  Sep= 8      14:58:16  15-07-25  PAGE
 1

     138  total keys in file
     578  total bytes in all keys
       3  smallest key
      10  largest key
    4.19  average bytes per key

     138  total records in file
  696388  total bytes in all records
    2492  smallest record
    6964  largest record
 5046.29  average bytes per record

       0  average records per group  (optimized)
    5009  average bytes per group  (optimized)

Press any key to continue...

----

When I run FILE.STAT APPOINTMENTS I get the following results:

----

>FILE.STAT APPOINTMENTS
File name                               = APPOINTMENTS
File type                               = 5
File style and revision                 = 64BIT Revision 12
NLS Character Set Mapping               = NONE
Number of groups in file (modulo)       = 149
Separation                              = 8
Number of records                       = 138
Number of physical bytes                = 1118208
Number of data bytes                    = 700880

Average number of records per group     = 0.9262
Average number of bytes per group       = 4703.8926
Minimum number of records in a group    = 0
Maximum number of records in a group    = 4

Average number of bytes per record      = 5078.8406
Minimum number of bytes in a record     = 2496
Maximum number of bytes in a record     = 7008

Average number of fields per record     = 340.0000
Minimum number of fields per record     = 340
Maximum number of fields per record     = 340

Press any key to continue...
Groups   25%     50%     75%    100%    125%    150%    175%    200%  full
          50       0      12       5       7      32      15      28
>

----

The per-record results are different.

Does anyone know why?

I am trying to settle on a tool to use when determining the best separation for a file, and having 2 different results from different tools is not helping.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

Gregor,

I'm guessing here - but could the difference be between the logical record size (data content size plus key size) and physical record size (includes byte count and (possibly) flag bits)?

Regards

JJ



------------------------------
John Jenkins
Thame, Oxfordshire
------------------------------

When I run HASH.HELP.DETAIL APPOINTMENTS I get the following summary

----

>HASH.HELP.DETAIL APPOINTMENTS

File APPOINTMENTS  Type= 5  Modulo= 149  Sep= 8      14:58:16  15-07-25  PAGE
 1

     138  total keys in file
     578  total bytes in all keys
       3  smallest key
      10  largest key
    4.19  average bytes per key

     138  total records in file
  696388  total bytes in all records
    2492  smallest record
    6964  largest record
 5046.29  average bytes per record

       0  average records per group  (optimized)
    5009  average bytes per group  (optimized)

Press any key to continue...

----

When I run FILE.STAT APPOINTMENTS I get the following results:

----

>FILE.STAT APPOINTMENTS
File name                               = APPOINTMENTS
File type                               = 5
File style and revision                 = 64BIT Revision 12
NLS Character Set Mapping               = NONE
Number of groups in file (modulo)       = 149
Separation                              = 8
Number of records                       = 138
Number of physical bytes                = 1118208
Number of data bytes                    = 700880

Average number of records per group     = 0.9262
Average number of bytes per group       = 4703.8926
Minimum number of records in a group    = 0
Maximum number of records in a group    = 4

Average number of bytes per record      = 5078.8406
Minimum number of bytes in a record     = 2496
Maximum number of bytes in a record     = 7008

Average number of fields per record     = 340.0000
Minimum number of fields per record     = 340
Maximum number of fields per record     = 340

Press any key to continue...
Groups   25%     50%     75%    100%    125%    150%    175%    200%  full
          50       0      12       5       7      32      15      28
>

----

The per-record results are different.

Does anyone know why?

I am trying to settle on a tool to use when determining the best separation for a file, and having 2 different results from different tools is not helping.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

Hello Gregor,

The record size consists of the record block, record data, and padded characters. FILE.STAT includes the padded characters, while some other commands remove the padded characters. Use FILE.STAT as space is taken.



------------------------------
Christian Bristow
TSE
Rocket Software Inc
Waltham MA US
------------------------------

Hello Gregor,

The record size consists of the record block, record data, and padded characters. FILE.STAT includes the padded characters, while some other commands remove the padded characters. Use FILE.STAT as space is taken.



------------------------------
Christian Bristow
TSE
Rocket Software Inc
Waltham MA US
------------------------------

Thanks for the feedback Christian.

This is the first time I have seen the term "padded characters" when talking about item storage in hashed files.

My understanding is (was) that the actual storage of an item in the group consists of 3 integer fields, the item id, an item mark and then the item body. In a 32bit file the integer fields are 4 bytes and in a 64bit file they are 8 bytes.
We have standardised on 64bit files so there are 24 bytes of "fields", 1 byte for the item id delim and the length of the item id and the length of the item body. I believe there can be an additional 2 fields if the item body is too big for the group and it has to be stored in the oversize buffer.

Are any of these integer fields part of what you term "padded characters"?

BTW, I am working on UV 11.3.5 if that influences how the hashed file structures work.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

When I run HASH.HELP.DETAIL APPOINTMENTS I get the following summary

----

>HASH.HELP.DETAIL APPOINTMENTS

File APPOINTMENTS  Type= 5  Modulo= 149  Sep= 8      14:58:16  15-07-25  PAGE
 1

     138  total keys in file
     578  total bytes in all keys
       3  smallest key
      10  largest key
    4.19  average bytes per key

     138  total records in file
  696388  total bytes in all records
    2492  smallest record
    6964  largest record
 5046.29  average bytes per record

       0  average records per group  (optimized)
    5009  average bytes per group  (optimized)

Press any key to continue...

----

When I run FILE.STAT APPOINTMENTS I get the following results:

----

>FILE.STAT APPOINTMENTS
File name                               = APPOINTMENTS
File type                               = 5
File style and revision                 = 64BIT Revision 12
NLS Character Set Mapping               = NONE
Number of groups in file (modulo)       = 149
Separation                              = 8
Number of records                       = 138
Number of physical bytes                = 1118208
Number of data bytes                    = 700880

Average number of records per group     = 0.9262
Average number of bytes per group       = 4703.8926
Minimum number of records in a group    = 0
Maximum number of records in a group    = 4

Average number of bytes per record      = 5078.8406
Minimum number of bytes in a record     = 2496
Maximum number of bytes in a record     = 7008

Average number of fields per record     = 340.0000
Minimum number of fields per record     = 340
Maximum number of fields per record     = 340

Press any key to continue...
Groups   25%     50%     75%    100%    125%    150%    175%    200%  full
          50       0      12       5       7      32      15      28
>

----

The per-record results are different.

Does anyone know why?

I am trying to settle on a tool to use when determining the best separation for a file, and having 2 different results from different tools is not helping.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

It is interesting to note that the HASH.AID program produces the same average record size as that from FILE.STAT

>HASH.AID APPOINTMENTS 18 139 12
File name                               = APPOINTMENTS
File type, modulo, and separation       = 18, 139, 12
Number of records                       = 138
Number of physical bytes                = 1218560
Number of data bytes                    = 700880

Average number of records per group     = 0.9928
Minimum number of bytes per group       = 2728
Maximum number of bytes per group       = 17304
Average number of bytes per group       = 5042.3022
Minimum number of records in a group    = 0
Maximum number of records in a group    = 3

Average number of bytes per record      = 5078.8406
Minimum number of bytes in a record     = 2496
Maximum number of bytes in a record     = 7008

Average number of fields per record     = 340.0000
Minimum number of fields per record     = 340
Maximum number of fields per record     = 340

Groups   25%     50%     75%    100%    125%    150%    175%    200%  full
          46      12       4      31      13       6       3      24
Press any key to continue...
>



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

Thanks for the feedback Christian.

This is the first time I have seen the term "padded characters" when talking about item storage in hashed files.

My understanding is (was) that the actual storage of an item in the group consists of 3 integer fields, the item id, an item mark and then the item body. In a 32bit file the integer fields are 4 bytes and in a 64bit file they are 8 bytes.
We have standardised on 64bit files so there are 24 bytes of "fields", 1 byte for the item id delim and the length of the item id and the length of the item body. I believe there can be an additional 2 fields if the item body is too big for the group and it has to be stored in the oversize buffer.

Are any of these integer fields part of what you term "padded characters"?

BTW, I am working on UV 11.3.5 if that influences how the hashed file structures work.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------

Hi Gregor,
The padded characters (record pads) are ASCII zero characters after the record entry and before the next record block header. These are used for a sort of forced word alignment. The file structure remains the same for UniVerse files after version 9.6. FILE.The STAT revision number will show 12 and doesn't appear to have changed, even on UniVerse 14.2.1. However, it is possible you have some old (pre v9.6) files that have never RESIZEd.



------------------------------
Christian Bristow
TSE
Rocket Software Inc
Waltham MA US
------------------------------

Hi Gregor,
The padded characters (record pads) are ASCII zero characters after the record entry and before the next record block header. These are used for a sort of forced word alignment. The file structure remains the same for UniVerse files after version 9.6. FILE.The STAT revision number will show 12 and doesn't appear to have changed, even on UniVerse 14.2.1. However, it is possible you have some old (pre v9.6) files that have never RESIZEd.



------------------------------
Christian Bristow
TSE
Rocket Software Inc
Waltham MA US
------------------------------

Thanks @Christian Bristow

I did not know such padding was used in UV.



------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------