If you are getting table locks for a SELECT at the table level, they will be S (share) locks, which do not interfere with each other (they can exist simultaneously among different applications against the same data). Although table locks are thought to have less concurrency than row locks, if the locks are all share locks the table locks are preferable because there is no contention and DB2 spends less time locking each row.
To improve performance, what you want is intra-partition parallelism if you doing tablespace scans against a large volume of data. This is available in all versions of DB2 (DPF is not required). To what extent you should do this depends on what resources your server has in terms of number of CPU's and number of physically separate disks and controllers (or in the case of a RAID implementation, number of physically separate arrays).
There are two ways to implement intra-partition parallelism:
1. For a single tablespace create multiple containers for the DMS tablespace, with each container on a separate physical disk or array. The number of containers should be the same as the degree of parallelism desired (see above for determined this number). The prefetch size should equal the extent size (such as 32 , 64, etc) times the number of container in the tablespace.
2. Create multiple tables and then access them via a UNION ALL View. See the link below for more information. Again, the number and placement of tables should take into account the amount of parallelism desired. In this case, keep each table on separate disks or arrays if possible (multiple containers are not necessary).
http://www-106.ibm.com/developerwork...202zuzarte.pdf
For both 1 & 2 above, you will need to set certain DB2 parameters to enable intra-partition parallelism, such as Degree of Parallelism, Number of I/O Servers, etc. I don't remember them all, but a search of this forum should find them.
If your data logically can be divided by dates (months, years, etc) and there is an administrative benefit for creating separate tables for each period, then I would the UNION ALL View. In my experience it works very well.