SQL Server and Hyper-threading

This post is about the CPU utilisation in the Standard, Web and Express editions of SQL Server because there is limitation for them. Licensing is given at the end of this post.

Physical environments

According to the official msdn references ([1], [2], [3]), Table 1 gives information about the physical cores the editions can utilize.

Table 1. Maximum number of physical cores for the Editions

When hyper-threading is not enabled a physical core is actually a logical processor. When hyper-threading is enabled, then a physical core counts two logical processors. Hence, the next Table 2 shows the doubled numbers of the logical processors the instances can utilise.

Table 2. Maximum number of logical processors for the Editions

You can use the following query to see how many logical processors are used by your SQL Server instance.

Virtual environments

At virtual environments the physical processor architecture is practically not visible to the SQL Server instance. The maximum number of logical processors a SQL Server instance can utilise is according to Table 1.

Licensing

When you use dedicated physical servers for your SQL Server instances, then the licensing is based on the physical cores. For example, if your SQL Server 2016 instance is installed on a 24 physical core server, it will make a utilisation of the 24 (or 48 if hyper-threading is enabled) logical processors, but the licensing would be based on the 24 physical cores.

When you use virtual environment the licensing is based on the logical processors. For example, if you have a SQL Server 2016 instance installed on a virtual server with 30 logical processors, your instance would utilise the maximum of 24 logical processors, but the licensing would be based on the 30 logical processors.

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on Google+

Leave a Reply

Your email address will not be published. Required fields are marked *

*