"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

  • semo - Tuesday, February 15, 2005 - link

    is it possible to have a dual proc setup without using registered memory?
  • Proton - Tuesday, February 15, 2005 - link

    "We did a revamp of the tool itself, which is more performant on high volume queries."

    Performant?
    Please read this article...
    http://msdn.microsoft.com/msdnmag/issues/05/03/Edi...

    "More recently, we've seen the word "performant" start its crawl into the everyday vocabulary of devspace. It is used to mean "highly performing." It's also not a word. When something provides information, it's informative. It's not "informant." The word "performant," if it existed, would be a noun—not an adjective. But it doesn't exist, so if you do see it in print, remember that it's not really there.'
  • ceefka - Tuesday, February 15, 2005 - link

    #15 Jason, let me rephrase that#10: "However compact"... That would do it more justice ;-)

    I didn't thank you for the effort you and Ross put into this, did I? Your article came out together with the announcements of AMD. Hot stuff! How much time/sleep did you really have?
  • Viditor - Tuesday, February 15, 2005 - link

    "What memory timings?"

    Good question...

    "is it dual vs Dual or single vs single"

    single vs single, 32bit
  • prd00 - Tuesday, February 15, 2005 - link

    Wait... I think I miss something here.. is it dual vs Dual or single vs single?
  • Zebo - Tuesday, February 15, 2005 - link

    What memory timings?
  • Viditor - Tuesday, February 15, 2005 - link

    "I don't know if it fixes the IOMMU issue or not"

    As far as we know, it doesn't. The Smithfield is a desktop part, so that is to be expected...large quantities of memory aren't yet necessary for the desktop.

    "Now this is interesting. Somewhere were Intel comes out on top by a big margin"

    (grin) Only the most diehard AMD fan would deny Xeon's capabilities...
    For a 1 or 2 CPU server that is used for low-end database serving or webserving, the new Xeon is excellent in 32bit (the CPU of choice)!
    As the next few months grind ahead, we will see quite a few scenarios on review sites. My own suppositions are that

    1. In a 1 or 2 single core Opteron system there is almost no bandwidth constraint. This is evidenced by the lack of change with the 25% HT increase to 1GHz. That said, we might see significant changes in 4 and 8 way systems, especially as dual cores come on-line.
    2. We still have no reviews of these two platforms in 64bit using >4GB of ram. I suspect that Opteron will be much more effective there...
    3. When Intel releases their mp Xeon Nocona, I suspect that 4 and 8 way Opteron systems will blow their doors off...my rationale is that the 1GHz HT links and AMD's MOESI cache protocol gives them a huge advantage in scaling processors.
  • Staples - Tuesday, February 15, 2005 - link

    Now this is interesting. Somewhere were Intel comes out on top by a big margin.
  • fitten - Monday, February 14, 2005 - link

    BTW... there is a new chipset (or some new chipsets) being released soon along with the Smithdale CPU. I don't know if it fixes the IOMMU issue or not, but it might be worth a look...
  • Viditor - Monday, February 14, 2005 - link

    "no mention in any of the access scenarios is described as 32bit..."

    Oops...yes it does.

    "Some devices, such as a large majority of PCI cards cannot directly access memory above the 4GB point"

Log in

Don't have an account? Sign up now