Disk Usage
The transactional database engine provides the following features for minimizing disk usage requirements:
Free Space List
When you delete a record, the disk space it formerly occupied is put on a Free Space List. When you insert new records, the transactional interface uses pages on the Free Space List before creating new variable pages. The Free Space Threshold tells the transactional interface how much free space must remain on a variable page in order for that page to appear on the Free Space List.
This method of reusing free space eliminates the need to reorganize files to reclaim disk space. Also, the Free Space List provides a means of reducing the fragmentation of variable-length records across several pages. A higher Free Space Threshold reduces fragmentation at the cost of requiring more disk space for the file.
Index Balancing
When an index page becomes full, the transactional database engine (by default) automatically creates a new index page and moves some of the values from the full index page to the new index page. Turning on the Index Balancing option lets you avoid creating a new index page every time an existing one becomes full. With index balancing, the transactional database engine looks for available space in sibling index pages each time an index page becomes full. The transactional database engine then rotates values from the full index page onto the pages that have space available.
Index balancing increases index page utilization, results in fewer pages, and produces an even distribution of keys among nodes on the same level, thus enhancing performance during read operations. However, using this feature also means that the transactional database engine requires extra time to examine more index pages and may require more disk I/O during write operations. Although the exact effects of balancing indexes vary in different situations, performance on write operations typically degrades by about 5 to 10 percent if you use index balancing.
Index Balancing impacts the performance of a “steady-state” file by making the average change operation a little slower while making the average get operation faster. It does this by fitting more keys in an average index page. A normal index page may be 50 to 65 percent full where an index balanced page is 65 to 75 percent full. This means there are less index pages to search.
If you create indexes with Create Index (31), the index pages will be nearly 100 percent full, which optimizes these files for reading not writing.
*Note: You can also specify index balancing on a file-by-file basis by setting the Index Balanced File bit in the File Flag field in the file.

If you enable the Index Balancing option, the transactional interface performs index balancing on every file, regardless of the balanced file flag specification that the application may have set. For a description of how to specify the Index Balancing configuration option, refer to the
Pervasive PSQL User's Guide.
Data Compression
With data compression, the transactional interface compresses the file’s records before inserting or updating them and uncompresses the records when it retrieves them. Because the final length of a compressed record cannot be determined until the record is written to the file, the transactional interface always designates a compressed file as a variable-record-length file. However, if you use data compression on a fixed-record-length file, the transactional interface prevents insert and update operations from producing a record that is longer than the fixed-record length specified for the data file.
Because the transactional interface stores compressed records as variablelength (even if you created the file as not allowing variable-length records), individual records may become fragmented across several data pages if you perform frequent insertions, updates, and deletions. This fragmentation can result in slower access times, because the transactional interfacemay need to read multiple file pages to retrieve a single record. However, data compression can also result in a significant reduction of the disk space needed to store records that contain many repeating characters. the transactional interfacecompresses five or more of the same contiguous characters into 5 bytes.
For more information on this feature, see Record Compression.
Blank Truncation
Blank truncation conserves disk space. It is applicable only to files that allow variable-length records and that do not use data compression. For more information on this feature, see Blank Truncation.