SPLA vs. BYOL: SQL Server licensing guide for service providers and their clients
SQL Server licensing in hosted environments and the Cloud is a little complicated. SPLA and BYOL are both similar and different and can confuse even a seasoned licensing expert. Let's de-confuse it.
TL/DR or Quick reference if you are busy
SQL Server licensed per VM requires one core license per virtual core with a minimum of four core licences per virtual machine. This rule is the same for SPLA and BYOL.
Excel: =MAX(4, VirtualCores)
SQL Server Standard in SPLA can also be licensed per user or device with Subscriber Access Licenses (SAL). You must count the final consumers of the data: persons or their client devices. When you cannot count them, use the per-core model. The beauty of this model in SPLA is that it does not require per-server licences, so server instances are unlimited. BYOL is different: server licenses are required.
Plus, although it rarely provides cost benefits, SQL Server Enterprise may also be licensed at the physical host level. It allows running unlimited virtual machines and containers. You must assign one core license per physical core with a minimum of 4 core licenses per physical CPU.
Excel: =MAX(4, PhysicalCoresPerProcessor) * PhysicalProcessors
Cluster discount: You get one passive node free of charge for each licensed active node.
The above should cover 99% of your queries. Now, let's dive deeper.
What is SQL Server
Microsoft SQL Server is a database management system that helps businesses of all sizes store, organise, and manage their data.
SQL Server is available in several editions, each tailored to meet different business needs:
SQL Server Standard Edition: This edition is designed for small* to medium-sized businesses that need database functionality.
SQL Server Enterprise Edition: This edition is designed for large* businesses that need high performance, scalability, and advanced security features.
SQL Server Web Edition: This edition, available only in SPLA, is designed for web hosting. In fact, it may only be used for web hosting.
*That is according to Microsoft marketing materials. In fact, SQL Standard serves large enterprises well in most applications. You only need SQL Enterprise for its advanced functionality.
How to license SQL Server on hosting
There are two options to license SQL Server when you run it in a service provider environment:
Pay-as-you-go (PAYG) or SPLA licensing is when the end-client rents a SQL Server with a SPLA license. License cost is included in the cost of the service, and the provider takes care of the license.
Bring-your-own-license (BYOL) is when the provider provides a SQL Server but allows the end client to bring their existing licences. In this case, the client must ensure that it has enough licenses and that the licenses are eligible for BYOL.
Pay-As-You-Go licensing of SQL Server on hosting
Service Provider License Agreement (SPLA) is a licensing program designed by Microsoft for service providers to host Microsoft software. The SPLA program enables service providers to license Microsoft products on a monthly basis, allowing them to offer software services to their customers without having to make a long-term commitment.
Benefits:
No long-term commitment. The billing period is one calendar month.
It's the best option for elastic workloads.
The provider takes care of the license.
Drawbacks:
No price protection. Prices usually go up once a year.
You may have a better price on your volume licences.
Costs:
SQL Server Enterprise is roughly four times more expensive than SQL Server Standard licensed per core.
License costs are comparable to one-year CSP licences and Level A pricelist in an Enterprise Agreement.
Bring Your Own License for SQL Server
You may take your licenses and assign them to hosted SQL Server instances if:
You have licenses with Software Assurance or subscription licences via any program, including Microsoft CSP,
The provider allows bringing your own licences. Some providers may refuse this option.
You may have read or heard that the provider must be an Authorised License Mobility Partner. That advice is outdated. From October 2022, any provider may allow BYOL, and no authorisation is required.
The provider also does not have to be a CSP-Hoster. It makes no difference for BYOL.
Benefits:
It's cheaper. If you have licenses you no longer need on-premises, you are most probably paying less for Software Assurance or subscription compared to SPLA costs. That is especially true for government entities and large enterprises.
Licenses on long-term subscriptions or purchased via Enterprise Agreement have price protections from their respective agreements.
Drawbacks:
Elasticity is cheaper via Pay-As-You-Go. The solution is to use mixed licensing: BYOL for consistent needs plus SPLA, for example, when you have seasonal requirements,
You have to take care of the licenses.
There's the added burden of providing license evidence to the service provider every time you renew your subscription or SA.
Costs:
The cost ratio between SQL Server Enterprise and SQL Server Standard licensed per core is roughly 4:1. This is true for all kinds of licenses: new licenses with Software Assurance, SA renewal, or subscription licenses.
Renewing Software Assurance is about 30-40% cheaper than acquiring new subscription licences. Before you cancel Software Assurance on unnecessary on-premises licences, see if you may reuse them on hosting or in the Cloud.
Types of licenses available under SPLA for SQL Server
Service providers can license SQL Server in the following ways under SPLA.
Enterprise | Standard | Web | |
---|---|---|---|
Per core per virtual machine | Yes | Yes | Yes |
Per core at the host level | Yes – providing unlimited virtualisation | Yes – only for the SQL in the physical operating system | Yes – only for the SQL in the physical operating system |
Per User or Device | — | Yes – server licenses not required | — |
Types of licenses available for BYOL for SQL Server
The following licence models are available for SQL Server BYOL:
Editions: Standard, Enterprise
Models: Per Core per VM, Per core host, Per User/Device (Server/CAL).
Enterprise | Standard | |
---|---|---|
Per core per virtual machine | Yes | Yes |
Per core at the host level | Yes – providing unlimited virtualisation | Yes – only for the SQL in the physical operating system |
Per User or Device | — | Yes – both Server and Client Access Licenses are required |
IMPORTANT: all licences, including Client Access Licenses (CAL), require active Software Assurance or subscription.
What SQL Server licensing model to choose
Please note that these recommendations are for SPLA and BYOL licensing, so it is implied that you have Software Assurance or subscription licenses as required by Flexible Virtualisation Benefit.
Per-core is the only choice for SQL Server Enterprise and Web editions. But you may also consider it for SQL Server Standard:
When you cannot count the users or devices, for example, when SQL Server is used with an Internet-facing application or a website.
When you can count the number of users or devices or when it is too high. In that case, the per-core licensing is cheaper. You need to calculate your own threshold, but it's roughly around 20 users per 4 cores on average.
Per-core licensing also has sub-scenarios:
Per-core licensing of individual virtual machines is the most popular and convenient option.
Licensing SQL Server per core at the host level for "Unlimited Virtualisation". It works best on hosts dedicated to SQL Server and requires you to run a significant number of SQL Server virtual machines to achieve any economic benefit. In reality, it's rarely beneficial. Do your maths first.
Licensing SQL Server per core at the physical CPU level without virtualisation