SQL running slow when virtualized (VHD.VHDX), any tips to speed it up?


We have noticed (mainly or customer unfortunately) that SQL is running slow when it is virtualized.
A typical setup that we have is 2012R2 as an hyper v based, + one virtual application server running SQL + one virtual DC.
If not running SQL, everybody's happy.

When running an application server with SQL, all we get is complaint that this is slow (and it is true).
We are not SQL savvy & kind of stuck in this situation.

The question is?

Is SQL not designed for virtualization?

If it is, how can we make it faster over a network so we get happy customer?

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Vitor MontalvãoMSSQL Senior EngineerCommented:
Is SQL not designed for virtualization?
By my experience when you use an heavily loaded database, virtualization might be an issue.
But if you're virtualizing why do you need to have SQL Server in the same box of the application server? SQL Server should be in a dedicated server, physical or virtual.
defreyAuthor Commented:
It is dedicated as a virtual. I am also talking about small network, between 5-20 users
Mark BillExchange, AD, SQL, VMware, HPE, 3PAR, FUD, Anti MS Tekhnet, Pro EE, #1Commented:
how many sockets and cores has it got assigned to it?

what is the new spec for the server in full?

is this vmware or hyper v?

what is task manager, performance and the hyper visor reporting telling you?
Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

Vitor MontalvãoMSSQL Senior EngineerCommented:
(...) one virtual application server running SQL (...)
When running an application server with SQL, all we get is complaint that this is slow (and it is true).
What do you mean with Application Server then? As my understanding Application Server means that you have an application installed there. If so, then isn't dedicated to SQL Server.

I am also talking about small network, between 5-20 users
Heavily load means with high number of transactions (thousands by second). It could have some process that is importing or changing data.

What's the server configuration?
Barry CunneyCommented:
Hi Defrey,
I have seen SQL Server running successfully and performing good on Virtual Machines - e.g. we have SQL Server 2008 R2 running a Data Warehouse on Windows Server 2012 VM

I think really what you need to do is to investigate further to try and determine what exactly is 'slow' or where there is a bottleneck.

You can use Windows Resource Monitor(resmon) as a starting point -
Open up resmon and leave this running when the 'slow' situation is occurring.
Resource Monitor has graphs for CPU, Disk, Network and Memory, so look at  these graphs to see if any of these are consistently high values.
This may give you an idea if the slowness is related to Disk or Memory

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Please answer the following:

Server setup: Number of CPUs? Make/Model/Core count
Server setup: RAM amount (number of sticks per CPU and size)?

Storage setup: RAID?
Storage setup: Number of spindles or SSDs?
Storage setup: RAID Adapter make/model/RAM/BBU or non-volatile RAM?

Virtualization setup: vCPUs assigned to each VM
Virtualization setup: vRAM assigned to each VM
Virtualization setup: Number of VHDXs for each VM

We've done a lot of SQL in Hyper-V work. There are some things to keep in mind as far as bottlenecks when designing a virtualization platform for SQL to run in.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.