20
Principled Technologies, Inc.: Initial investment payback analysis: Dell PowerEdge R710
solution with VMware ESX vs. HP ProLiant DL385 solution
Editing the ds2_create_cust.c module
We had to make the same changes to the ds2_create_cust.c module that we made to the ds2_create_orders.c
module. On the command line for the ds2_create_cust.c module, we specified the size. The available options
were S (small), M (medium), and L (large). We added the case T for the 10GB database. In the switch statement
that sets the values for the variables max_cust_id and max_prod_id, we added cases that assigned them the
proper values for the 10GB database size.
We recompiled the ds2_create_cust.c module on Linux, following the instructions in the header comments. We
used the following command line:
gcc –o ds2_create_cust ds2_create_cust.c –lm
Generating the data for the 10GB database
We used shell scripts to run all four of the executables that generate the data. The distribution did not include
shell scripts for the 10GB size. We wrote shell scripts based on the ds2_create_cust_large.sh and
ds2_create_orders_large.sh scripts. The ds2_create_prod and ds2_create_inv executables did not ship with
associated shell scripts, so we created shell scripts using the instructions in the readme files. We ran the shell
scripts in the following order to generate the data for the 10GB database:
1. ds2_create_orders_10gb.sh
2. ds2_create_inv_10gb.sh
3. ds2_create_prod_10gb.sh
4. ds2_create_cust_10gb.sh
We waited until the processes finished before we moved onto the next step.
Creating the database
We modified the database creation SQL Server scripts in the DVD Store distribution package to build the
database schema, which includes the file structure, tables, indices, stored procedures, triggers, and so on. We
built a master copy of the 10GB database version for SQL Server 2005 and for SQL Server 2008, and then used
those master copies to restore our test database to the HP ProLiant DL385 solution and Dell PowerEdge R710
solution between each test run. We stored the backup file on the C: drive of each server for quick access.
We followed these steps to create the database:
1. We created the database and file structure using database creation scripts in the DS2 download. We
made size modifications specific to our 10GB database and the appropriate changes to drive letters.
2. We created database tables, stored procedures, and objects.
3. We set the database recovery model to bulk-logged to prevent excess logging.
4. We loaded the data we generated into the database. For data loading, we used the import wizard in SQL
Server Management Studio. Where necessary, we retained options from the original scripts, such as
Enable Identity Insert.
5. We created indices, full-text catalogs, primary keys, and foreign keys using the database-creation scripts.
6. We updated statistics on each table according to database-creation scripts, which sample 18 percent of
the table data.
7. On each SQL Server instance, we created a ds2user SQL Server login using the following Transact SQL
(TSQL) script:
USE [master]
GO
CREATE LOGIN [ds2user] WITH PASSWORD=N’’,
DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF
GO