X
X
x2sp2019-04-25 18:39:00
SQL Server
x2sp, 2019-04-25 18:39:00

Why does a query in a sql server database run slower on a VM than on a PC?

We have a high-performance
HP Gen8 360 server with two Xeon 3690s, RAM 128 - 1866 MHz, hyper-v based on windows server 2012 r2
SmartArray p420i: The first Raid 5 array - hdd 500 Gb 7200, The second Raid 1 array - hdd ssd 1.9 Tb
We have a working programmer station:
i7-8850H, 16 GB, Windows 10 64 bit.
Sql server 2014 sp3 develop
The essence of the problem: We have a self-written database within which the function is executed.
On the programmer's workstation, the query execution speed is 3 seconds (on subsequent launches, too)
On the server, 18 seconds (on subsequent launches, 16).
What could be the reason?
For the sake of testing on the hypervisor, all virtual machines were disabled and the test was carried out with all capacities.
ssd disks were purchased and the VM was transferred from hdd sas raid 5 to ssd sata raid1 Speed
​​tests were carried out on both arrays and the restart speed was not higher than 16 seconds (SQL Server buffer cache)
And it would be fine if the speed was 2 times lower , but here the fall goes to 10 and for me it is not clear.
Moreover, it turns out that the problem with all databases is most likely ...

Answer the question

In order to leave comments, you need to log in

2 answer(s)
D
d-stream, 2019-04-26
@d-stream

Just a finger to the sky:
1. try on a workstation over the network so that the server has a guaranteed tcpip and not shared memory
2. how are things with the serviceability of the database on the server (statistics, fragmentation, etc.)
3. what is in the parallelization settings requests? (often the scheduler can spend a lot of time on concurrency scheduling itself)

L
lu1ssuarez, 2019-04-26
@lu1ssuarez

x2sp , point 4): request to the server from the server itself? Or from a workstation?
In any case, try to specify the domain name of the server in the server address field in the server connection settings instead of the IP address
"SERVER_NAME" instead of "192.168.1.100"

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question