Specifies the size
of an SPD Server table partition.
Corresponding
Macro Variable
Arguments
n
is the size of the
partition in megabytes.
Specifying PARTSIZE=
forces the software to partition (split) SPD 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 Mbytes.
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 Scalable Platform Data Server table at fixed-sized intervals, the
software can introduce a high degree of scalability for these operations.
The reason: it can launch 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 MINPARTSIZE=, an SPD Server parameter maintained by
the SPD Server administrator. MINPARTSIZE= ensures that an over-zealous
SAS user does not create arbitrarily small partitions, thereby generating
a large number of files. The default for MINPARTSIZE= is 16 Mbytes
and probably should not be lowered much beyond this value.
Note: The PARTSIZE value for a
table cannot be changed after a table is created. To change the PARTSIZE,
you must PROC COPY the table and use a different PARTSIZE option setting
on the new (output) table.
Using PROC SQL, extract
a set of rows from an existing table to create a non-indexed table
with a partition size of 32 Mbytes in a SAS job:
PROC SQL;
create table SPDSCEN.HR80SPDS(partsize=32)
as select
state,
age,
sex,
hour89,
industry,
occup
from SPDSCEN.PRECS
where hour89 > 40;
quit;