Specifying PARTSIZE= forces the software to partition (split) the server tables at
the given size. The actual size is computed to accommodate
the largest number of rows that will fit in the specified size of n megabytes.
Use this option to improve performance of
WHERE clause evaluation on non-indexed table columns and on SQL GROUP_BY processing. By splitting
the data portion of a server table at fixed-sized intervals, the software can introduce
a high degree of
scalability for these operations. The software can do this by launching threads in parallel to
perform the evaluation on different partitions of the table, without the threat of
file access contention between the threads. There is, however, a price for the table
splits: an increased number of files, which are required to store the rows of the
table.
The PARTSIZE= specification is limited by the MINPARTSIZE= server parameter. MINPARTSIZE=
ensures that an over-zealous user does not create arbitrarily small partitions, thereby
generating a large number of files. When MINPARTSIZE= is omitted from the server
parameter file, the default value is 16 MB for domains that are not Hadoop domains and 128 MB for
Hadoop domains. These are the absolute minimum recommended settings for each environment.
Many sites specify a higher MINPARTSIZE= value in their server parameter file.
Note: The partition size for a
table cannot be changed after a table is created. If you must change
the partition size, use PROC COPY to duplicate the table and specify
a different PARTSIZE= setting on the output table.