Consultor Eletrônico



Kbase P6873: What database blocksize should be chosen at creation time 1, 2, 4 or 8KB?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   14/10/2008
Status: Verified

GOAL:

What database blocksize should be chosen at creation time 1, 2, 4 or 8KB?

GOAL:

Considerations about choosing the database block size.

FACT(s) (Environment):

All Supported Operating Systems
Progress 8.2x
Progress 8.3x
Progress 9.x

FIX:

Advantages:

* Better overall performance - best when the block size is equal to or a multiple of the filesystem's block size. Performance will not necessarily be better for all functions, but it won't be worse. PROGRESS have extensively tested multi-user mode configurations and know that better performance is likely. Single-user mode may be no better.

* Better index compression - each index block will hold more so the compression algorithm has more to try to compress. This in turn reduces the amount of I/O required to access records through the index. If this improved compression were to eliminate an index level in a large index, you would gain a significant further i/o reduction.

* Larger maximum database size. About 256 GB with 4k or 8k blocks.

* Fewer fragmented records.

Disadvantages:

By choosing a larger block size, you gain the following disadvantages:

* Your database may use slightly more disk space if the average record length is small enough that you reach the maximum number of records per block (64 for a 8KB block, 32 otherwise) before the space in the block is fully utilized.

* You have to reduce the value of -B (the number of buffers in the in-memory database buffer pool) to compensate for the increased block size. To keep the amount of memory used the same, if you double the block size, halve -B.

* To convert an existing database to a different block size, a dump and load is required.

To find out what is your operating system file system block size, contact your operating system vendor. Most recent UNIX systems use a 4 or 8KB block size. Some older implementation uses 1 or 2KB block sizes.

To find out the current block size of your PROGRESS databases, use prostrct statistics or promon option 7. Database Status.