To learn how to create a TPC-C benchmark test in Benchmark Factory, see Create Industry Standard Benchmark Test.
Find a detailed overview of the TPC-C Benchmark at: http://www.tpc.org/tpcc/default.asp.
The TPC-C benchmark is an online transaction processing benchmark that simulates environments that have a number of terminal operators that send transactions to a database. This benchmark is focused on the concept of an order-entry type environment with transaction that include orders, payment recording, order status, and stock level monitoring. This benchmark portrays the activities of a wholesale supplier. However, the TPC-C is not limited to one particular business segment. It can represent numerous categories of a business that sell or distribute products and services.
The TPC-C benchmark simulates a wholesale parts dealer operating out of warehouses. This Benchmark scales as a company, in theory, expands their business or number of facilities. As the TPC-C benchmark scales, so do the number components for the benchmark, for example, the sales districts and customers.
The scale factor determines the amount of information initially loaded into the benchmark tables. For the TPC-C benchmark, each scale factor represents one warehouse as per TPC-C specification. The TPC-C benchmark involves a mix of five concurrent transactions of different types and complexity. The database is comprised of nine tables with a wide range of records.
A maximum of 10 users should be run against each warehouse. For example, user loads of 1, 5, and 10, set the scale to 1. If using other user load values, change the scale factor accordingly.
The TPC-C database consists of the following tables:
Transaction Processing Council testing results cannot be published as certified unless the testing procedure is audited and approved by the TPC organization. If not certified, the testing results can be published as a "TPC-C like" test.
The following provides best practices for the TPC-C Benchmark.
Do not load-test against a production server if possible. Load-testing and benchmarking on a production server significantly degrades performance. In some cases, load-testing can cause a server to fail. However, if testing against a production server, take the following precautions:
To reinitialize a testing database, run a job containing a Benchmark Object node.
There are two ways to create a Benchmark Object node: