Sql-server – Compare Microsoft SQL server performance between virtual and dedicated server

performancesql-server-2008

I have a dedicated windows 2008 r2 server at the moment and I am thinking about migrating to a virtual server because of the costs. Now I know that SQL should be on a dedicated server, but the flexibility and costs are a great advantage for our situation.
I would like to compare both servers. I know it is hard because one is a production server with actual load and the other is a test server with one user.

Both run Microsoft SQL Server 2008.
dedicated has 12 GB ram, virtual has 12 GB ram
dedicated has a dual quad core CPU and virtual has 4 CPU's

both have the exact same database (I restored a backup from production on the virtual test)

I executed a heavy select query with a heavy view and made the Microsoft SQL Server Management Studio include the Client statistics.
That displays the Total execution time

Somehow the virtual shows a zero there now (since we added 2 virtual CPU's) but in the bottom right of the management studio it shows that the virtual server took 3 seconds and the dedicated server(production) took 2 seconds for the query to complete.

How can I make a good comparison between the virtual and production?

Edit: I have been told that the paravirtual setting in VMWare makes it better to compare the performance of the two instances.

Best Answer

Testing isolated queries isn't going to help you make this decision. As you have an existing database live, use it to capture a representative workload.

  • Capture a profiler trace from your live, dedicated server
  • Use the RML toolset to create a replay file
  • Execute against the virtual server using ORCA

I posted a brief summary of the RML tools in an earlier question which you may find useful. To compare results across both runs, capture a trace of the first trace being run against the virtual server and run both through ClearTrace.