There are two basic ways to consolidate SQL Server systems: consolidation through virtualization and consolidation by using SQL Server's multiple instances feature. At first pass, using multiple instances and running instances of SQL Server on virtual machines (VMs) might seem to be very much the same, but there are some substantial differences.

Multiple instances have been supported since SQL Server 2000. The SQL Server Express and Workgroup editions support a maximum of 16 instances, whereas the Web Standard and Enterprise editions support a maximum of 50 instances. Multiple instances support essentially allows multiple copies or instances of SQL Server to be installed on a single OS. You can see an overview of SQL Server's multiple instances support in Figure A.


Figure A: Multiple instances


Virtualization is quite different. With virtualization, each VM has its own virtual hardware and guest OS. SQL Server is then installed on the guest OS. Virtualization allows you to run different versions of the guest OS on different VMs as well as different versions of SQL Server or other applications. You can see an overview of running SQL Server on multiple VMs in Figure B.


Figure B. SQL Server in multiple VMs


Multiple instances support typically provides better performance than virtualization because there's less system overhead. However, virtualization provides better flexibility and availability by enabling VMs to be moved between different hosts. It's worth noting that multiple instances and virtualization are not mutually exclusive. You can install multiple instances of SQL Server on a VM. For more information about the differences between virtualization and multiple instances, see "VMs vs. Multiple SQL Server Instances" and "VMs vs. Multiple SQL Server Instances, Round 2".