You need to differentiate between virtualization and multi-tenancy. Virtualizing databases works fine. You can slice a two socket system in half and bind a VM to each socket and you have doubled the tenancy without introducing multi-tenancy (sort of). If you give them separate disks you can maintain some isolation there as well. There is a nice win there because you are eliminating a lot of cross socket memory traffic. Scale up is pretty poor with many products. For a scale out database you can use one socket to host the DB and the other socket to host multiple lesser VMs. This will also let you get the node count of the DB up which is a good thing in many cases because it means less data per node. I think the multi-tenancy stuff where resources are shared is pure crap.