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 4: File and performance implications

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

Page 1 of 13 Go to the next page

File and Performance Implications

Level: Intermediate

Mark Baldridge (, Principal Consultant, Rocket Software

30 Nov 2006

In this installment of the UniVerse® performance series, continue the investigation of UniVerse file performance, examining the inner workings of dynamic linear hash files. Explore the challenges of setting an appropriate separation, once you choose one.

Before you start

This tutorial builds upon the /devloperzone/tutorials/mbaldridged0512/index.html">first tutorial in this series, which introduced the UniVerse profiler for building unit performance tests. 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

This series of tutorials provides UniVerse DBA and application designers with tools for making reasoned and metrically-justified decisions about choices in everyday tasks. The subject matter of this series of articles and tutorials on UniVerse performance tuning arise 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.

About this tutorial

With this installment, continue to explore the factors that affect file performance. This tutorial starts by examining the file structure of dynamic files so you can see how they relate to the structure of static hash files. It then explores the dynamic file-splitting operation so you can make measurements of the process. And it wraps up with techniques that overcome the default separation and limits placed upon that selection for dynamic files.


In this tutorial, you will learn the mechanism of dynamic file splitting and the modified definition of an oversize record in a dynamic file. You will then measure the split operation to compare it to overflow in Part 2 of this series. You will learn the impact of loading an empty dynamic file and MINIMUM.MODULUS. You will also learn the limitations of GROUP.SIZE and how to overcome them when setting a separation.



This tutorial requires an installation of UniVerse. You can download a Personal Edition of UniVerse for Red Hat Linux or Microsoft Windows from the Rocket U2 Web site (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 have a familiarity with writing and compiling UniVerse BASIC programs.


Page 1 of 13 Go to the next page
Document Actions