"Order Entry" Stress Test: Measuring Enterprise Class Performance

One complaint that we've historically received regarding our Forums database test was that it isn't strenuous enough for some of the Enterprise customers to make a good decision based on the results.

In our infinite desire to please everyone, we worked very closely with a company that could provide us with a truly Enterprise Class SQL stress application. We cannot reveal the identity of the Corporation that provided us with the application because of non-disclosure agreements in place. As a result, we will not go into specifics of the application, but rather provide an overview of its database interaction so that you can grasp the profile of this application, and understand the results of the tests better (and how they relate to your database environment).

We will use an Order Entry system as an analogy for how this test interacts with the database. All interaction with the database is via stored procedures. The main stored procedures used during the test are:

sp_AddOrder - inserts an Order
sp_AddLineItem - inserts a Line Item for an Order
sp_UpdateOrderShippingStatus - updates a status to "Shipped"
sp_AssignOrderToLoadingDock - inserts a record to indicate from which Loading Dock the Order should be shipped
sp_AddLoadingDock - inserts a new record to define an available Loading Dock
sp_GetOrderAndLineItems - selects all information related to an Order and its Line Items

The above is only intended as an overview of the stored procedure functionality; obviously, the stored procedures perform other validation, and audit operations.

Each Order had a random number of Line Items, ranging from one to three. Also randomized was the Line Items chosen for an order, from a pool of approximately 1500 line items.

Each test was run for 10 minutes and was repeated three times. The average between the three tests was used. The number of Reads to Writes was maintained at 10 reads for every write. We debated for a long while about which ratio of reads to writes would best serve the benchmark, and we decided that there was no correct answer. So, we went with 10.

The application was developed using C#, and all database connectivity was accomplished using ADO.NET and 20 threads - 10 for reading and 10 for inserting.

So, to ensure that IO was not the bottleneck, each test was started with an empty database and expanded to ensure that auto-grow activity did not occur during the test. Additionally, a gigabit switch was used between the client and the server. During the execution of the tests, there were no applications running on the server or monitoring software. Task Manager, Profiler, and Performance Monitor were used when establishing the baseline for the test, but never during execution of the tests.

At the beginning of each platform, both the server and client workstation were rebooted to ensure a clean and consistent environment. The database was always copied to the 8-disk RAID 0 array with no other files present to ensure that file placement and fragmentation was consistent between runs. In between each of the three tests, the database was deleted, and the empty one was copied again to the clean array. SQL Server was not restarted.


SQL Stress Results "Order Entry" Stress Test results
Comments Locked

97 Comments

View All Comments

  • Hans Maulwurf - Wednesday, February 16, 2005 - link

    Yes, but IBM would not use memory that is not on the recommanded list of the mainboard, at lest I hope so.
    And it is possible that the boad sets very high latencies for the memory you used. So I think it is an important information especially when using memory that is not recommanded.
  • Jason Clark - Wednesday, February 16, 2005 - link

    Hans, let me ask you this. When someone in an IT dept. calls Compaq, Dell, HP or IBM for a server do you think they ask them what the memory timings are set at? The answer is no. Which is why we aren't going to provide information like that, as it isn't relevant to the target audience or the purpose of the article. We're trying to educate the IT folks on what platform does what on certain workloads and IT related tests.

    Cheers.
  • prd00 - Wednesday, February 16, 2005 - link

  • Hans Maulwurf - Wednesday, February 16, 2005 - link

    Jason,

    you do not have to play with the memory timings to report them.
  • dm - Tuesday, February 15, 2005 - link

    danidentity, i guess you're right when you mentioned about 5pages of reply ;)...
  • prd00 - Tuesday, February 15, 2005 - link

    Sorry, missed your comment Jason.. I read viditor comment that said as single. So, in Dual setup, Xeon is more powerful now ;). Then, Xeon must be faster in single.
    I am waiting for 64 bit one ;)
  • prd00 - Tuesday, February 15, 2005 - link

    Wow.. single??
    On single setup, I already knew that Xeon is powerful. Right now what we are lacking is a TRUE SERVER BENCHMARK. Not just single vs single. I can safely recommend Xeon since a few months ago on single setup, but right now, most of our customers are asking about DUAL SETUP. Some are looking in QUAD setup. Single is useless in server environment. For databse server, 9 out of 10 are looking for 2p setup
    So, what I am really looking are database benchmark on single, dual and quad setup, and also how does it scale. Which platform best suited for 2p and 4p, and which one has better upgrade future (i.e. by adding processors), and until what point.

    So, like, Xeon is good for 1p, but on 2p Opteron is better, while more than 8p we can consider Itanium instead for database server.

    Kind of conclusion like that.
  • Jason Clark - Tuesday, February 15, 2005 - link

    Zebo, because this is a server test. You don't play with memory timings/overclocking in servers. We used default memory timings that the Tyan board set for the memory. I linked to the manufacturer specs on the memory which identifies its SPD rating. The only thing we're investigating at this point is the 1GHz HT issue in the bios.
  • PrinceGaz - Tuesday, February 15, 2005 - link

    It's certainly a change from the usual Opteron beating Xeon in almost all server tests reviews, and all the more so because you say they were both dual CPU systems (I was under the impression while reading they were only single CPU servers being compared).

    It just goes to show how much difference the benchmarks that are run, how well the systems are set up, and any other things we never know about, can influence results.

    I'm glad Intel is coming out ahead in some tests on AT, maybe you should make them come out ahead on desktop stuff too as that might encourage AMD to drop the prices on the higher rated E0 revision Athlon 64 processors sooner rather than later :)
  • Zebo - Tuesday, February 15, 2005 - link

    Jason how comw you did'nt say mem timings nor speed or if 1T or not? I've never seen a review from AT without this.

Log in

Don't have an account? Sign up now