The on-disk size of a Derby table grows by one page at a time until eight pages of user data (or nine pages of total disk use; one is used for overhead) have been allocated. Then it will grow by eight pages at a time if possible.
A Derby table or index can be created with a number of pages already pre-allocated. To do so, specify the property prior to the CREATE TABLE or CREATE INDEX statement.
Define the number of user pages the table or index is to be created with. The purpose of this property is to preallocate a table or index of reasonable size if the user expects that a large amount of data will be inserted into the table or index. A table or index that has the pre-allocated pages will enjoy a small performance improvement over a table or index that has no pre-allocated pages when the data are loaded.
The total desired size of the table or index should be the following number of bytes:
(1 + derby.storage.initialPages) * derby.storage.pageSize
When you create a table or an index after setting this property, Derby attempts to preallocate the requested number of user pages. However, the operations do not fail even if they are unable to preallocate the requested number of pages, as long as they allocate at least one page.
The minimum number of initialPages is 1.
The maximum number of initialPages is 1000.
-- system-wide property derby.storage.initialPages=30 -- database-wide property CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY( 'derby.storage.initialPages', '30')
This property is static; if you change it while Derby is running, the change does not take effect until you reboot.