5.1 High volume INSERT benchmark  5.1.1 Workload description  SQLJ driver application program description Table and index description Db2 12 introduces many performance-related enhancements, such as Insert Algorithm 2, the  support for active log data sets that are larger than 4 GB, and a reduction in latch class 19  and 23 and page latch contention. With these enhancements, Db2’s ability to process many  inserts in a short time is better than ever. To verify this ability, we assembled a team to  determine whether inserting 10 million rows per second can be accomplished in a Db2 for  z/OS environment. At the end of the project, a maximum insert rate of 11.7 million inserts per second was  achieved for a table with no index defined. A rate of 5.3 million inserts per second was  achieved for a table with a single index defined. These results are described in more detail in  the following sections. The high volume of insert operations that are performed during this benchmark was driven  from an SQLJ (static Java) application that is running on Linux for System z. HiperSockets  communication was used between the Linux for System z and z/OS images to reduce  network latency. Sysplex workload balancing was enabled so that the inserts were distributed  evenly across all members of the Db2 data sharing group based on resource availability. The table that was used for this benchmark consists of 10 columns, including BIGINT,  INTEGER, CHAR, VARCHAR, TIMESTAMP, and DECIMAL columns. A table space with a  total of 300 partitions (range-partitioned with absolute page numbering) was created by using  one of the BIGINT columns as the partitioning column. The inserted data rows were  approximately 200 bytes. COMPRESS YES was used on the table space to reduce the size  of the data. For the workload run where the table had a (non-unique) index that is defined, the specified  columns for the index were BIGINT and INTEGER columns. A 32 K buffer pool was used for  the index to reduce the amount of index page split activity. A Java application (SQLJ) that uses static SQL to access the target table was developed to  generate the insert statements. To reduce the TCP/IP send and receive network  communication overhead, the inserts were batched into groups of 200 inserts (which resulted  in one multi-row insert with a rowset size of 200) per commit.  Sysplex workload balancing was enabled for the application to evenly distribute the inserts  across all Db2 members in the data sharing group. A value of RTPIFACTOR=10 was  specified in the z/OS IEAOPTxx parmlib member to reduce the influence the Performance  Index (PI) value has on the weights that are assigned by WLM to each LPAR. With the default  setting of 100, we observed abnormal situations where some Db2 members are dropped off  the sysplex list and no longer receive any work. The package that was used by the SQLJ application was bound with  RELEASE(DEALLOCATE) to reduce CPU consumption. 156  IBM Db2 12 for z/OS Performance Topics