

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 比较 SQL Server 版本
<a name="sql-server-editions"></a>

## 概述
<a name="sql-server-editions-overview"></a>

Microsoft SQL Server 许可费用是 Windows 工作负载环境中的最大费用之一。SQL Server 的许可费用可能会远远超出运行工作负载所需的计算成本。如果选错了版本，您可能会为一些您根本不用或根本不需要的功能付费。本部分比较了以下 SQL Server 版本，包括其功能和相关成本：
+ **企业版**：SQL Server 企业版提供数据中心功能，包括高性能、无限虚拟化和多种商业智能（BI）工具。
+ **标准版**：SQL Server 标准版为规模较小的组织和部门提供基本的数据管理和商业智能服务。
+ **Web 版**：SQL Server Web 版适用于 Web 托管商或 Web 增值提供商（VAP）的公司。此版本具有较低的总拥有成本，并且为从小型到大型规模的 Web 应用程序提供可扩展性和管理能力。
**重要**  
您可以使用 SQL Server Web 版支持公用且可通过互联网访问的网页、网站、Web 应用程序和 Web 服务。您不能使用 SQL Server Web 版来支持业务线应用程序（例如客户关系管理或企业资源管理应用程序）。
+ **开发人员版**：SQL Server 开发人员版包含企业版的所有功能，但仅用于开发目的。
+ **精简版**：SQL Server 精简版是一款免费的数据库软件，可用于学习或构建桌面应用程序。您可以将精简版更新到其它版本。

**注意**  
SQL Server 评估版提供 180 天的试用期。

## 成本影响
<a name="sql-server-editions-cost-impact"></a>

您可以从 Microsoft 的经销商处购买 SQL Server 许可证，并使用软件保障将其带到 AWS 。或者，您也可以使用基于按实际使用量付费模式的 SQL Server 许可证，该模式附带包含许可证的 Amazon EC2 AMI。

如果您从 Microsoft 经销商处购买 SQL Server 许可证，则核心许可证以两份为一包进行出售，每台服务器至少需要购买四份核心许可证。下表显示了企业版和标准版的成本比较。


****  

| 版本 | SQL Server 企业版（2 个核心一包） | SQL Server 标准版（2 个核心一包） | 节省成本 | 
| --- | --- | --- | --- | 
| 2022 | 15,123 美元 | 3,945 美元 | 74% | 
| 2019 | 13,748 美元 | 3,586 美元 | 74% | 

**注意**  
上表中的定价基于 Microsoft 对 [SQL Server 2022](https://www.microsoft.com/en-us/sql-server/sql-server-2022-pricing) 和 [SQL Server 2019](https://www.microsoft.com/en-us/sql-server/sql-server-2019-pricing) 的公开定价。

以下成本对比展示了使用包含许可证的 Amazon EC2 AMI 来托管不同版本的 SQL Server 的情况。在此比较中，SQL Server 托管在 `us-east-1` 区域的 r6i.xlarge（4 个 vCPU）上。


****  

| 实例 | 计算成本 | Windows 许可证成本 | SQL Server 许可证成本 | Total | 
| --- | --- | --- | --- | --- | 
| R6i.xlarge (Linux) | 183.96 美元 | – | – | 183.96 美元 | 
| R6i.xlarge \+ Windows | 183.96 美元 | 134.32 美元 | – | 318.28 美元 | 
| R6i.xlarge \+ SQL Server 网络版 | 183.96 美元 | 134.32 美元 | 49.35 美元 | 367.63 美元 | 
| R6i.xlarge \+ SQL Server 标准版 | 183.96 美元 | 134.32 美元 | 350.4 美元 | 668.68 美元 | 
| R6i.xlarge \+ SQL 企业版 | 183.96 美元 | 134.32 美元 | 1,095 美元 | 1,413.28 美元 | 

通过为您的工作负载选择适当的 SQL Server 版本，您最多可以节省 95% 的 SQL Server 许可费用。下表比较了 r6i.xlarge 实例上 SQL Server 许可证的费用。


****  

| Edition | 节省成本 % | 
| --- | --- | 
| 标准版与企业版对比 | 68% | 
| Web 版与标准版对比 | 86% | 
| Web 版与企业版对比 | 95% | 

在大多数情况下，组织会从企业版切换到标准版，但也有一些情况下可以从标准版或企业版切换到 Web 版。

## 成本优化建议
<a name="sql-server-editions-opt-rec"></a>

您可以根据扩展限制、高可用性、性能和安全性等因素，为您的工作负载选择最适合的版本。以下表格列出了各 SQL Server 版本所支持的功能。这能帮助您确定使用哪个版本。此比较适用于 [SQL Server 2016 SP1 及更高版本](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16)。

### 扩展限制
<a name="sql-server-editions-opt-rec-scaling"></a>

以下表格对比了不同 SQL Server 版本的扩展限制情况。


****  

| 功能 | 企业版 | 标准版 | Web 版 | 精简版 | 
| --- | --- | --- | --- | --- | 
| 单个 SQL Server 数据库引擎、SQL Server 分析服务（SSAS）或 SQL Server Reporting Services（SSRS）实例所使用的最大计算容量 | 操作系统最大值 | 最多只能选择 4 个插槽或者 24 个核心中的较少者 | 最多只能选择 4 个插槽或者 16 个核心中的较少者 | 最多只能选择 4 个插槽或者 4 个核心中的较少者 | 
| 每个 SQL Server 数据库引擎实例的缓冲池最大内存 | 操作系统最大值 | 128 GB | 64 GB | 1410 MB | 
| 每个 SQL Server 数据库引擎实例的缓冲池扩展的最大容量 | 已配置最大内存的 32 倍 | 已配置最大内存的 4 倍 | N/A | N/A | 
| 最大关系数据库大小 | 524 PB | 524 PB | 524 PB | 10 GB | 
| Columnstore 缓存或内存优化型数据的最大内存 | 操作系统最大值 | 32 GB | 16 GB | 352 MB | 

如果您的应用程序所需的核心数少于 16 个（即 32 个 vCPU）且 RAM 为 64GB 以下，则您可以从 SQL Server Web 版本开始进行评估。如果您的工作负载需要超过 64 GB 的内存或者其他高可用性选项，则您必须升级到 SQL Server 标准版。

您可以使用 SQL Server Web 版来支持面向公众和互联网的网页、网站、Web 应用程序以及 Web 服务，但不能使用 SQL Server Web 版来支持业务线应用程序。有关 SQL Server Web 版使用案例的更多信息，请联系 [Microsoft 许可支持部门](https://www.microsoft.com/licensing/docs/view/Licensing-Use-Rights)或您的 Microsoft 经销商。

您可以使用 SQL Server 标准版来处理最多 24 核心（48 个 vCPU）和 128GB 内存的工作负载。但是，您可以使用[缓冲池扩展](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/buffer-pool-extension?view=sql-server-ver16)来使 SQL Server 标准版能够利用[本地实例存储](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)，就像 r6id EC2 实例中所具备的那种存储方式一样。这样可以将内存最高扩展到最大内存配置的四倍。这种组合功能能够在内存需求开始增加时，推迟服务器升级至企业版的过程。

您可以通过在缓冲池和[页生命周期](https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-node?view=sql-server-ver16)计数器中查找数据库页面来识别内存利用率。页生命周期是指页面在内存中停留的时间（即数据在内存中保存多久后才会被刷新回磁盘）。该计数器的默认值为 300。如果页面在内存中停留数小时或数天，则有降低内存分配量的可能性。

### 高可用性
<a name="sql-server-editions-opt-rec-avail"></a>

以下表格对比了不同 SQL Server 版本的高可用性功能。


****  

| 功能 | 企业版 | 标准版 | Web 版 | 精简版 | 
| --- | --- | --- | --- | --- | 
| 服务器核心支持 1 | 支持 | 是 | 是 | 是 | 
| 日志传送 | 支持 | 是 | 是 | 否 | 
| 数据库镜像 | 是 | 完全安全模式 | 仅作为见证 | 仅作为见证 | 
| 备份压缩 | 支持 | 是 | 否 | 否 | 
| Always On 失效转移群集实例 | 16 个节点 | 2 个节点 | 否 | 否 | 
| Always On 可用性组 | 最多 8 个辅助副本，包括 2 个同步辅助副本 | 否 | 否 | 否 | 
| 基本可用性组 | 否 | 2 个节点 | 否 | 否 | 
| 在线页面和文件恢复 | 是 | 否 | 否 | 否 | 
| 在线索引 | 是 | 否 | 否 | 否 | 
| 在线架构更改 | 是 | 否 | 否 | 否 | 
| 快速恢复 | 是 | 否 | 否 | 否 | 
| 镜像备份 | 是 | 否 | 否 | 否 | 
| 热添加内存和 CPU | 是 | 否 | 否 | 否 | 
| 加密备份 | 支持 | 是 | 否 | 否 | 
| 混合备份到 Microsoft Azure（备份到 URL） | 支持 | 是 | 否 | 否 | 
| 用于灾难恢复的失效转移服务器 | 支持 | 是 | 否 | 否 | 
| 用于实现高可用性的失效转移服务器 | 支持 | 是 | 否 | 否 | 

### 其他常见功能
<a name="sql-server-editions-opt-rec-features"></a>

以下表格对比了不同 SQL Server 版本的最常见功能。有关功能的详尽列表，请参阅 Microsoft 文档中的 [SQL Server 2019 的版本和支持的功能](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16)。


****  

| 功能 | 企业版 | 标准版 | Web 版 | 精简版 | 
| --- | --- | --- | --- | --- | 
| （性能）资源调控器 | 是 | 否 | 否 | 否 | 
| （安全）透明数据库加密（TDE） | 支持 | 是 | 否 | 否 | 
| （安全）可扩展密钥管理（EKM） | 是 | 否 | 否 | 否 | 
| （复制）Oracle 出版物 | 是 | 否 | 否 | 否 | 
| （复制）对等事务复制 | 是 | 否 | 否 | 否 | 
| 更改数据捕获 | 支持 | 是 | 否 | 否 | 

### SQL Server 开发人员版
<a name="sql-server-editions-opt-rec-developer"></a>

所有非生产工作负载（例如开发、QA、测试、暂存和 UAT 环境）都可以使用 SQL Server 开发人员版来节省 100% 的 SQL Server 许可费用。[下载 SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 后，您可以通过使用共享租赁的方式在 EC2 实例上安装 SQL Server 开发人员版。SQL Server 开发人员版无需专用基础设施。有关更多信息，请参阅本指南中的对 [SQL Server 开发人员版](sql-server-dev.md)的建议。

### 切换版本
<a name="sql-server-editions-opt-rec-switching"></a>

对于现有工作负载，从一个版本切换到另一个版本需要进行大量测试。 最佳做法是检查在企业版或标准版上运行的工作负载，以查看是否使用了特定版本的功能，以及这些功能是否有其他解决方案。 例如，如果您想查看您的数据库是否正在使用任何 Enterprise-level 功能，则可以在所有数据库上运行[动态管理视图 (DMV)](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-persisted-sku-features-transact-sql?view=azuresqldb-current)，如以下示例命令所示。

`SELECT feature_name FROM sys.dm_db_persisted_sku_features; GO`

有些企业版功能无法在中捕获 T-SQL，例如作为 SQL 维护作业一部分的联机重新索引。这些功能必须手动验证。

### 迁移注意事项
<a name="sql-server-editions-opt-rec-migration"></a>

您对 SQL Server 的许可方式将决定您切换版本的选项。包括 SQL Server AMI 在内的 AMI 将许可费用包含在 EC2 实例的价格中，即将许可费用与 AMI 绑定。您可以使用 [AWS 账单代码](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html)来验证您的 AMI 中包含的 SQL Server 版本。对于 AWS 包含许可证的实例，在操作系统内更改 SQL Server 版本并不会改变与 AMI 相关的账单。您必须将您的数据库迁移至一个新的 EC2 实例，并使用运行新版本 SQL Server 的 AMI 来完成迁移操作。

如果您自带许可证，则可以拥有更大的灵活性。通常仍建议您迁移到运行新版本的另一个 EC2 实例上。这样一来，如果出现未按预期进行的情况，也能方便地进行失效自动恢复。然而，如果您必须使用现有服务器，您仍然可以进行 SQL Server 的并行安装，并在不同实例之间迁移数据库。有关并行版本降级的更详细步骤，请访问 MSSQLTips 网站上的 [SQL Server 版本升级和降级](https://www.mssqltips.com/sqlservertip/6686/edition-upgrade-and-downgrade-in-sql-server/)。

## 其他资源
<a name="sql-server-editions-resources"></a>
+ [SQL Server 2022 的版本和支持功能](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16)（Microsoft Learn）
+ [sys.dm\_db\_persisted\_sku\_features ()（微](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-persisted-sku-features-transact-sql?view=azuresqldb-current)软学习）Transact-SQL
+ [您应该使用哪个 SQL Server 版本？](https://www.brentozar.com/archive/2019/01/which-version-of-sql-server-should-you-use/) （Brent Ozar Unlimited）
+ [AWS 定价计算器](https://calculator.aws/#/estimate?id=e138c18348afd3853a4874681c660bc1947ec5ca) (AWS)