Skip to content. | Skip to navigation

Personal tools
You are here: Home Accelerate Tutorials Travels with Mark: A hitchhiker's guide to the UniVerse, Part 3: Sizing hashed files: Oversize records

Travels with Mark: A Hitchhiker's Guide to the UniVerse, Part 3

Page 1 of 15 Go to the next page

Sizing Hashed Files: Oversize Records

Level: Intermediate

Mark Baldridge (, Principal Consultant, Rocket Software

Before you start

This tutorial builds upon the first tutorial in the series, which introduced the UniVerse Profiler for building unit performance tests and continues the file performance investigation of the second tutorial. The Profiler comes as an unmodified, ideal flavor account, which uses a mixture of information-, pick-, and reality-style syntaxes for different commands and code. You can use any flavor of account, adjusting code for the appropriate syntaxes or adding VOC entries to provide syntax compatible commands, such as CREATE.FILE, or routines to hide the flavor differences. Tests that examine the difference in performance of flavor-specific behavior control that behavior with $OPTIONS compiler directives.

Code examples use mixed-case, or camel-back, variable names, with an initial capital letter. Language constructs and keywords use lower case. The LOGIN paragraph turns off case inversion. The program, Keywords, in the Bp file, copies all of the keywords and the VOC file pointer to their lower case counterparts if you want to set up your own account.

Before you start building and running tests, you should enter the Profiler account and execute the BuildAll paragraph. If you have any platform- or release-specific differences in your environment, this should properly initialize them.

About this series

The subject matter of this series of tutorials on UniVerse performance tuning arises from visits to customer sites. The issues raised do not disparage the customer, but reflect a real-world predicament. The typical developer or DBA has so many outstanding tasks that, by the time one task is complete, at least one more has joined those remaining. They all demand attention. Sufficient time exists to make something work, but typically not enough to make it work well. As companies avoid excess administration staff, this is true for UniVerse DBAs or the many additional DBAs that it takes to run a comparably-sized shop using another database.


About this tutorial

Have you ever found a file you cannot size properly? Does it have a lot of large records and small records? No matter what you try, the FILE.STAT reports the file has groups over 200 percent full? How many records should you have in a group block? Do access patterns affect your decisions?

This tutorial examines the performance impact of those large records that cause FILE.STAT to always report groups in 200 percent overflow. The results reveal when selecting a larger separation improves performance of large records and also how much a larger separation slows access to smaller records.



This tutorial continues to explore the factors that affect file performance. It starts by examining the file structure so you can design tests that provide numbers for using records in a set of oversize blocks and the cost of different separation selections. It also continues with tests that highlight the impact of oversize activity.



This tutorial requires an installation of UniVerse. (To download a Personal Edition of UniVerse for Red Hat Linux® or Microsoft Windows®, see Resources). The personal edition has file size restrictions that will prohibit some tests, such as test 1332, which creates a 1GB file. You should also have a familiarity with writing and compiling UniVerse BASIC programs.


Page 1 of 15 Go to the next page
Document Actions