Any form of database server is not really a good candidate to virtualize. Databases are typically IO intensive applications without the need to hog CPU. You should also look for swapping or paging activity, to verify that enough memory is available to the application.
Enable disk performance monitoring using "diskperf -Y" on both the physical and virtual machines, and then compare the average throughput for the same type of queries against the servers. You would probably need to reboot them for this.
The fact that the CPU is only at 3% does not really matter, you need to look at the disk stats and check that memory is sufficient.
If you are using iSCSI devices, slow network responses could be the culprit, or the fact that the device or the VM is NOT communicating at full duplex. Verify that the NICs are set for full duplex, and are in fact using full duplex
I would also suggest maybe comparing startup parameters on the old and new systems, to ensure that the VM config and the physical server configs are at least similar in terms of memory allocated for caches and temp usage.