Database setup
To perform our performance tests, we had to setup our database. Our database was spread across two different devices, each with its own file system.
Database layout
The database layout on the DB2® on z/OS® LPAR was inherited from previous tests. We found that it differed in some areas from the layout used on the database on Linux®.
We found that there were several differences between some of the Trade 6 database settings on DB2 on Linux versus the settings for DB2 on z/OS. We made the changes described below because we expected them to improve the performance.
- There is a difference in the database table structure between z/OS and Linux.
The ORDEREJB table on z/OS has three additional indexes defined that are not
defined on Linux DB2.
(The extra indexes are: ORDERCLOSX, ORDER EXACTIDX, and ORDERETYPIDX.)
This difference could be expected to cause higher processor utilization for operations that cause changes to the indexes as well as longer overall response times due to the hardening of the additional indexes at commit times. Because the updated indexes are serialized until they are committed, this could increase overall response times.
We created the indexes so that they were the same on z/OS as they were on Linux.
- The 'varchar()' data types default to padded versus not padded on z/OS. This can affect processor utilization and latency by causing additional table accesses. We changed them to be unpadded on z/OS.
- The database on z/OS is stored in EBCDIC while on Linux it is stored
in UTF-8.
This causes data translation on the database on DB2 on z/OS. On Linux, however, the data is stored in UTF-8, which requires less translation overhead. The translation on the z/OS system uses additional processor. For head-to-head comparisons we changed the z/OS database to also use UTF-8.
- The database on z/OS defaults to non-volatile. Under some cases this could cause a sequential search of the entire file instead of the use of an index to access the information in the file. We changed the default to "Volatile," which always causes the index to be used.
After making the changes described above, the databases were comparable and represented a standard setup for the Trade 6 workload.
Logging setup
- eight 128M logs or three 512M logs
- FEPDB2.LOGCOPY1.DS0A on volume DB9C37
- FEPDB2.LOGCOPY1.DS0B on volume DB9C38