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 

本文版权归作者所有,未经作者同意不得转载。

SQL Server授权购买简单介绍的更多相关文章

  1. SQL SERVER数据库的简单介绍

    一.数据库技术的发展 数据库技术是应数据管理任务的需求而产生的,先后经历了人工管理.文件系统.数据库系统等三个阶段. 二.关系型数据库 SQL Server属于关系型数据库. 关系模型 以二维表来描述 ...

  2. Centos 7.3下 Linux For SQL Server安装及配置介绍

    Centos 7.3下 Linux For SQL Server安装及配置介绍 高文龙关注13人评论2828人阅读2017-03-05 21:46:21 Centos 7.3下Linux For SQ ...

  3. 总结SQL Server窗口函数的简单使用

    总结SQL Server窗口函数的简单使用 前言:我一直十分喜欢使用SQL Server2005/2008的窗口函数,排名函数ROW_NUMBER()尤甚.今天晚上我在查看SQL Server开发的相 ...

  4. SQL Server 2014 各版本介绍

    SQL Server 2014 各版本介绍 目前,SQL Server 2014 分为主要版本和专业版. 在选择版本的时候可以根据您具体的需要进行抉择,如果你需要一个免费的数据库管理系统,那么就选择 ...

  5. SQL Server中约束的介绍

    SQL Server中约束的介绍(转载收藏) Posted on 2010-09-03 11:05 grayboy 阅读(8501) 评论(0) 编辑 收藏 作者:GrayBoy 出处:http:// ...

  6. SQL Server系统表sysobjects介绍与使用(转)

    SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可 ...

  7. SQL Server系统表sysobjects介绍

    SQL Server系统表sysobjects介绍 sysobjects 表结构: 列名 数据类型 描述 name sysname 对象名,常用列 id int 对象标识号 xtype char(2) ...

  8. SQL Server 2005 系统数据介绍:dm_exec_connections

    原文:SQL Server 2005 系统数据介绍:dm_exec_connections 转载:http://msdn.microsoft.com/zh-cn/library/ms181509(SQ ...

  9. 转载--SQL Server 2005的XQuery介绍

    原文地址: http://bbs.51cto.com/thread-458009-1-1.html   引用: 摘要 本文介绍了SQL Server 2005能够支持的XQuery的各方面特性如FLW ...

随机推荐

  1. Laravel 5 框架性能优化技巧

    性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能. 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论 1.配置缓存信息 使用l ...

  2. iOS 处理socket粘包问题

    1.什么是粘包? 粘包通常出现在TCP的协议里面,对于UDP来说是不会出现粘包状况的,之所以出现这种状况的原因,涉及到一种名为Nagle的算法. Nagle算法通过减少必须发送的封包的数量,提高网络应 ...

  3. msf入门学习笔记

    msf-------------------------------------- service postgresql startservice metasploit startmsfconsole ...

  4. Guice之IOC教程

    Guice 在上一篇博客中, 我们讲解了Spring中的IOC示例与实现, 本文着重介绍Guice注入以及与Spring中的差异. Guice是Google开发的, 一个轻量级的依赖注入框架, 跟Sp ...

  5. Java----list常用方法汇总

    package ListTest; import java.util.ArrayList; import java.util.Iterator ; import java.util.List; /** ...

  6. hdu4416 Good Article Good sentence (后缀数组)

    题意:问a串中有多少种字符串集合B中没有的连续子串. a的长度10^5,B中的总长度为不超过10^5. 解法:后缀数组题目:后缀数组能够非常easy算出来一个串中有多少种子串. 把a和B集合连起来.求 ...

  7. 解决EJB本地调用“java.lang.ClassCastException: $Proxy96 cannot be cast to com.tgb.ejb.UserManager”异常

    EJB本地调用方式:把Webclient和EJB服务端部署到同一个JBoss,client和server通过一个JVM进行通信. Web客户端本地调用时.需引用EJB服务端打包的jar,不需引用JBo ...

  8. 柯塔娜(Cortana):从科幻虚构到真实人生

    依照商业法理.7月29日.随着Win10公布的东风."小娜"与"小冰"两姊妹相会于中国北京. 在"小娜"眼中,"小冰"仅 ...

  9. 苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算

    一 基本操作运算 1. 赋值操作 在Swift 中,能够使用赋值操作为一个常量或一个变量赋值,也能够使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其他语言最大的不同是赋值操作除了可以为 ...

  10. python自动化--文件处理

    文件处理 格式 打开 f=open('a.txt',mode='r',encoding='utf-8') 读写 data=f.read() print(data) 关闭 f.close() 流程分析: ...