SQL Server授权购买简单介绍
之前有同事问我,使用盗版序列号的SQL Server到底有没有性能限制,之前本人一直没有深入研究过,后来经过一番资料搜集和查证,汇总成这篇文章
微软的SQL Server产品分为两种卖法
1、盒装
1、盒装 :Server+CAL授权方式(SQL2017取消了Server+CAL授权方式,盗版序列号,一般电脑城有卖光盘、盗版光盘、代理商,CAL方式最多只能用20个逻辑核,超线程只能用40核,SQL2014之后找不到盗版序列号)
select serverproperty('Edition')
Enterprise Edition (64-bit)
2、授权
2.1、授权:Core-based 授权方式(按逻辑核心授权,SQL2012及之后,没有盗版序列号,只能找正规代理商买,至少要买四核心,超线程也按照正常核心计算)
select serverproperty('Edition')
Enterprise Edition: Core-based Licensing (64-bit)
2.2、授权:Processor-based 授权方式(按物理核心授权,SQL2012以前,没有盗版序列号,只能找正规代理商买,一个物理核心只能对应一个逻辑核心,也就是即使一个物理核心有多个逻辑核也无法利用)
分清授权模式和edition
SQL Server有很多版本,而有一些版本是不需要购买授权的,例如express 版和Developer版
而有些版本没有Core-based 授权,例如Web版和Standard 版,但是也有最大CPU和内存限制
edition版本
express edition:免费,只能用1逻辑核CPU,可以用于生产环境。
Enterprise edition:Core-based 授权/Server+CAL授权
Standard edition:没有企业版的关键特性
Web edition:没有企业版的关键特性
Developer edition:免费,无功能限制,不能用于生产环境。
详见
https://docs.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2016
Server+CAL授权方式的限制
限制CPU=20核/40核(超线程)
限制内存=当前物理内存/NUMA数量*(总核数/20)
限制内存的解释:如果设置了SQL Server的最大使用内存超过限制内存,则当使用内存大于限制内存而需要再向操作系统申请内存时,则会产生跨NUMA处理的情况,导致大量消耗系统资源,引起性能下降
举个栗子
硬件配置
8核 64G内存的机器
限制内存=当前物理内存/NUMA数量*(总核数/20)=64G/1*(8/20)=25.6G 内存
超过26G内存就会出现性能下降
证明
虚拟机硬件配置
OS:win2012r2 datacenter
cpu:32核
内存:128g
数据库:SQL2008/SQL2012
select serverproperty('Edition') SQL2008/SQL2012
Enterprise Edition (64-bit)
sp_readerrorlog SQL2012、SQL2014、SQL2016。。。
2018-01-02 18:13:04.510 Server SQL Server detected 2 sockets with 16 cores per socket and 16 logical processors per socket, 32 total logical processors; using 20 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
sp_readerrorlog SQL2008(SQL2008虽然探测到当前机器的所有逻辑核,但是实际上只能使用20个逻辑核)
2018-01-02 17:32:36.600 服务器 Detected 32 CPUs. This is an informational message; no user action is required.
如果是购买了 Core-based授权的用户,执行select @@version命令会显示如下结果
SELECT @@VERSION
Microsoft SQL Server 2014 - 12.0.2000.8 (X64)
Feb 20 2014 20:04:26
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
Oracle和SQL Server支持Core-based 授权的版本对比
SQL Server
2012年3月7日发布2012版SQL Server数据库
Oracle
2009年9月发布Oracle 11G R2(11.2.0.1)
所以对于Oracle来说,SQL Server还是有差距
总结
最后总结一句话:天下没有免费的午餐,使用收费软件之前请搞清楚软件的授权方式,想解除限制还是老老实实买Core-based 授权或者用开源数据库吧
如有不对的地方,欢迎大家拍砖o(∩_∩)o
本文版权归作者所有,未经作者同意不得转载。