SQL Server数据库版本总结

一、为什么要写这篇文章

之所以专门写一篇文章来整理归纳SQL Server各个版本的功能区别,是因为遇到过两次真实的客户案例,因为数据库版本选取不当,导致生产系统宕机的情况。

案例一

某客户安装了 32位 版本的SQL Server 2008 R2 数据库,一到业务高峰期,数据库就卡死没反应!
32位程序最多只能使用4GB内存!而用户的数据量已经达到200多GB。数据量大,内存小,业务高峰期必然导致数据频繁的从磁盘读入内存、再从内存刷入磁盘。内存瓶颈继而引发了磁盘IO瓶颈,数据库卡死就不足为怪了。

问题情况见如下截图:
图1:查询版本确定是32位版本数据库
在这里插入图片描述
图2、图3:主机内存有32GB,而32位版本数据库最大使用内存不超过4GB
在这里插入图片描述

在这里插入图片描述

案例二

某客户现场装了一套新的SQL Server实例,运行没多久系统报错:“PRIMARY 文件组已满”。最终定位原因,安装的数据库版本是:SQL Server 2014 个人体验版 (Express Edition)。 个人体验版最多使用 10GB 磁盘空间!

二、查询数据库版本详细信息

要做到正确选用数据库版本,第一步工作是学会查询当前数据库版本详细信息。
查询命令:

select @@VERSION

在这里插入图片描述
查询命令输出的信息内容很多,可以分解为如下几部分:

1. 版本摘要信息
版本主要信息,版本号、补丁包信息等,如:

  • “Microsoft SQL Server 2008 R2 (SP3)”
  • “Microsoft SQL Server 2017 (RTM)”

2. 详细版本号
SQL Server 详细版本号格式: 主版本号.次版本号.update版本号.编译版本号
如:

  • “10.50.6000.34”
  • “14.0.1000.169”

其中主版本号的定义如下:

  • 8 - SQL Server 2000
  • 9 - SQL Server 2005
  • 10 - SQL Server 2008
  • 11 - SQL Server 2012
  • 12 - SQL Server 2014
  • 13 - SQL Server 2016
  • 14 - SQL Server 2017
  • 15 - SQL Server 2019

3. 32位/64位信息
标识数据库版本是32位还是64位

  • X86 - 32位版本
  • X64 - 64位版本

4. 版本编译日期
如:“Aug 19 2014 12:21:34”, “Aug 22 2017 17:04:49”

5. 企业版/标准版/体验版信息
显示数据库版本是企业版、开发者版、标准版等信息。

  • 企业版 - “Enterprise Edition”
  • 开发者版 - “Developer Edition”
  • 标准版 - “Standard Edition”
  • 体验版 - “Express Edition”
  • 数据中心版 - “Data Center Edition”

三、企业版、标准版、体验版对硬件资源的使用限制

1. SQL Server 2008 R2

硬件资源 数据中心版(Datacenter) 企业版(Enterprise) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 8核 4核 1核
最大内存资源 操作系统支持的最大值 2TB 64GB 1GB
数据库最大磁盘空间 524PB 524PB 524PB 10GB

2. SQL Server 2012

硬件资源 企业版(Enterprise) 智能商业版(Business Intelligence) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 限制为4个插槽或16核,取二者中的较小值 限制为4个插槽或16核,取二者中的较小值 限制为1个插槽或4核,取二者中的较小值
最大内存资源 操作系统支持的最大值 64GB 64GB 1GB
数据库最大磁盘空间 524PB 524PB 524PB 10GB

3. SQL Server 2014

硬件资源 企业版(Enterprise) 智能商业版(Business Intelligence) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 限制为4个插槽或16核,取二者中的较小值 限制为4个插槽或16核,取二者中的较小值 限制为1个插槽或4核,取二者中的较小值
最大内存资源 操作系统支持的最大值 128GB 128GB 1GB
数据库最大磁盘空间 524PB 524PB 524PB 10GB

4. SQL Server 2016

硬件资源 企业版(Enterprise) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 限制为4个插槽或24核,取二者中的较小值 限制为1个插槽或4核,取二者中的较小值
最大内存资源 操作系统支持的最大值 128GB 1GB
数据库最大磁盘空间 524PB 524PB 1410MB

5. SQL Server 2017

硬件资源 企业版(Enterprise) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 限制为4个插槽或24核,取二者中的较小值 限制为1个插槽或4核,取二者中的较小值
最大内存资源 操作系统支持的最大值 128GB 1410MB
数据库最大磁盘空间 524PB 524PB 10GB

6. SQL Server 2019

硬件资源 企业版(Enterprise) 标准版(Standard) 体验版(Express)
CPU资源限制 操作系统支持的最大值 限制为4个插槽或24核,取二者中的较小值 限制为1个插槽或4核,取二者中的较小值
最大内存资源 操作系统支持的最大值 128GB 1410MB
数据库最大磁盘空间 524PB 524PB 10GB

小结

  1. SQL Server 的各个历史版本中,除了 SQL Server 2008 R2 的最高级别版本为数据中心版(Datacenter),其余版本的最高级别版本均为企业版(Enterprise)。最高级别版本无硬件资源使用限制。
  2. SQL Server 还有一类版本:开发者版(Developer)。开发者版在功能以及硬件资源使用上,都等同于最高级别版本(数据中心版/企业版)。只是开发者版不能用于商业环境。
  3. 随着硬件资源的不断提升,标准版/体验版的硬件资源限制也在逐步放开。例如 SQL Server 2012 标准版最多使用64GB内存,而到了SQL Server 2014 提升到了128GB内存,这个策略挺好。

四、SQL Server 2012 及其之后的企业版license重要变更

上文中提到,SQL Server 2012及其之后的版本,最高级别的版本均为企业版,企业版对硬件资源的使用没有限制。其实这种说法并不准确,具体还要看在企业版的前提下,使用的是哪种license许可。

SQL Server 2012 及其之后的企业版版本,有两种类型的license许可:

  • 基于服务器+客户端访问许可证(CAL)的许可 --> 最多使用20核CPU
  • 基于内核的服务器许可 -->CPU使用无限制

官网说明如下:
在这里插入图片描述
查看数据库使用的是哪种license许可
如果是基于内核的服务器许可,在使用 select @@version 查看版本详细信息时,输出的结果中会有关键字:Core-based Licensing。如果不存在该关键字,则说明是基于服务器+客户端访问许可证(CAL)的许可。

基于内核的服务器许可:
在这里插入图片描述

基于服务器+客户端访问许可证的许可:
在这里插入图片描述

实例验证
以一个实际例子验证:即使数据库已经是企业版,但如果license使用的是基于服务器+客户端访问许可证的情况下,数据库最多使用20核CPU!

1)查询数据库版本
数据库版本为2014企业版,但是"select @@version"查询结果中没有关键字"Core-based Licensing",顾为基于服务器+客户端访问许可证(CAL)的许可。
在这里插入图片描述
2) 查询服务器CPU总核数

select cpu_count from sys.dm_os_sys_info

在这里插入图片描述
3) 查看数据库实例实际使用的CPU核数

SELECT COUNT(*)
FROM sys.dm_os_schedulers
WHERE is_online = 1
  AND status = 'VISIBLE ONLINE' 

在这里插入图片描述
可以看到,服务器一共32核CPU,数据库虽然是企业版,但是实际只使用了20核CPU。

4) 更改数据库license序列号,更改为基于内核的服务器许可
网上有更改license序列号的步骤,此处略

5)验证license类型更换是否成功
在这里插入图片描述
6)再次查询当前实例实际使用的CPU核数
在这里插入图片描述
可以看到,license升级为"基于内核的服务器许可"后,数据库就可以使用服务器上的全部32核CPU!

参考文章
[1] SQL Server 2008 R2 各个版本支持的功能官网说明
[2] SQL Server 2012 各个版本支持的功能官网说明
[3] SQL Server 2014 各个版本支持的功能官网说明
[4] SQL Server 2016 各个版本支持的功能官网说明
[5] SQL Server 2017 各个版本支持的功能官网说明
[6] SQL Server 2019 各个版本支持的功能官网说明
[7] 官网:按SQL Server版本划分的计算能力限制

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>