你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
功能比较:Azure SQL 数据库和 Azure SQL 托管实例
适用于: Azure SQL 数据库 Azure SQL 托管实例
Azure SQL 数据库服务和 SQL 托管实例均与最新稳定版本的 SQL Server 共用一个通用代码库。 大多数标准 SQL 语言、查询处理和数据库管理功能都是相同的。 SQL Server 与 SQL 数据库或 SQL 托管实例都有以下功能:
- 语言功能 - 流语言和关键字、光标、数据类型、DML 语句、谓词、序号、存储过程和变量的控制。
- 数据库功能 - 自动优化(计划强制)、更改跟踪、数据库排序规则、包含的数据库、包含的用户、数据压缩、数据库配置设置、联机索引操作、分区和时态表。
- 安全功能 - 应用程序角色、动态数据掩码、行级别安全性和高级威胁防护(请参阅 SQL 数据库和 SQL 托管实例的入门指南。)
- 多模型功能 - 图形处理、JSON 数据、OPENXML、空间、OPENJSON 和 XML 索引。 有关详细信息,请参阅 Azure SQL 数据库和 SQL 托管实例的多模型功能。
Azure 管理数据库并保证其高可用性。 可能影响高可用性或无法在 PaaS 领域中使用的某些功能在 SQL 数据库和 SQL托管实例中会受到限制。 下表描述了这些功能。
如需有关差异的更多详细信息,请查看相关页面:
SQL 数据库和 SQL 托管实例的功能
下表列出了 SQL Server 的主要功能,并说明该功能在 Azure SQL 数据库或 Azure SQL 托管实例中是部分受支持还是完全受支持,同时提供了指向该功能的详细信息的链接。
功能 | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
数据库兼容性 | 100 - 160 | 100 - 160 |
Always Encrypted | 是,请参阅证书存储和密钥保管库 | 是,请参阅证书存储和密钥保管库 |
Always On 可用性组 | 每个数据库都保证 99.99-99.995% 可用性。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 | 每个数据库都保证 99.99.% 可用性,并且不能由用户管理。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 使用故障转移组在另一个区域中配置辅助 SQL 托管实例。 不能将 SQL Server 实例和 SQL 数据库用作 SQL 托管实例的辅助数据库。 |
附加数据库 | 否 | 否 |
审核 | 是,请参阅审核 | 是,请参阅审核,但有一些差异 |
Microsoft Entra 身份验证(旧称 Azure Active Directory) | 是,适用于数据库级用户。 服务器级登录预览版已开放。 | 是的。 数据库级用户和服务器级登录名。 |
备份命令 | 否,仅系统启动的自动备份,请参阅 Azure SQL 数据库中的自动备份 | 是,用户发起的仅将备份复制到 Azure Blob 存储的操作(用户无法发起自动系统备份)- 请参阅备份差异和 Azure SQL 托管实例中的自动备份。 |
内置函数 | 大多数,请参阅“单个函数” | 是,请参阅存储过程、函数和触发器差异 |
BULK INSERT 语句 | 是,但是只能从充当源的 Azure Blob 存储进行。 | 是,但是只能从充当源的 Azure Blob 存储进行,请参阅差异。 |
证书和非对称密钥 | 是,无法访问文件系统完成 BACKUP 和 CREATE 操作。 |
是,无法访问文件系统完成 BACKUP 和 CREATE 操作,请参阅证书差异。 |
更改数据捕获 - CDC | 是,适用于 S3 及更高级别层。 不支持基本、S0、S1、S2 层。 | 是 |
排序规则 - 服务器/实例 | 是,默认数据库排序规则为 SQL_Latin1_General_CP1_CI_AS 。 数据库排序规则可以在创建数据库时设置,并且不能更新。 为数据指定排序规则 (COLLATE ),为系统元数据和对象标识符指定目录排序规则 (CATALOG_COLLATION )。 在 Azure SQL 数据库中,没有服务器排序规则。 |
是,可以在创建实例时设置,以后不可更新。 |
列存储索引 | 是 - 高级层、标准层 - S3 及以上层、常规用途层、业务关键层和超大规模层。 | 是 |
公共语言运行时 - CLR | 否 | 是,但无权在 CREATE ASSEMBLY 语句中访问文件系统,请参阅 CLR 差异 |
凭据 | 是,但是仅限数据库范围的凭据。 | 是,但仅支持 Azure Key Vault 和 SHARED ACCESS SIGNATURE ,请参阅详细信息 |
跨数据库/三部分名称查询 | 否,请参阅弹性查询 | 是 |
跨数据库事务 | 否 | 是,在实例中。 对于跨实例查询,请参阅链接服务器的差异。 |
数据库邮件 - DbMail | 否 | 是 |
数据库镜像(已弃用) | 否 | 否 |
Microsoft Fabric 中的数据库镜像 | 是,处于预览状态 | 否 |
数据库快照 | 否 | 否 |
数据库虚拟化 | 否 | 是 |
DBCC 语句 | 大多数,请参阅“单个语句” | 是,请参阅 DBCC 差异 |
DDL 语句 | 大多数,请参阅“单个语句” | 是,请参阅 T-SQL 差异 |
DDL 触发器 | 仅数据库 | 是 |
分布式分区视图 | 否 | 是 |
分布式事务 - MS DTC | 否,请参阅弹性事务 | 是,适用于 Azure SQL 托管实例的 DTC, 以及弹性事务 |
DML 触发器 | 大多数,请参阅“单个语句” | 是 |
DMV | 大多数,请参阅“单个 DMV” | 是,请参阅 T-SQL 差异 |
弹性查询 | 是,具有所需的 RDBMS 类型(公共览版) | 否,使用本机跨数据库查询和链接服务器 |
事件通知 | 否,请参阅警报 | 否 |
表达式 | 是 | 是 |
扩展事件 (XEvent) | 部分,请参阅 Azure SQL 数据库和 Azure SQL 托管实例中的扩展事件 | 是,请参阅扩展事件的差异。 |
扩展的存储过程 | 否 | 否 |
文件和文件组 | 仅限主文件组 | 是的。 文件路径是自动分配的,不能在 ALTER DATABASE ADD FILE 中指定文件位置。 |
文件流 | 否 | 否,请参阅 SQL 托管实例功能。 |
全文搜索 (FTS) | 是,但不支持非 Microsoft 筛选器和断字符 | 是,但不支持非 Microsoft 筛选器和断字符 |
函数 | 大多数,请参阅“单个函数” | 是,请参阅存储过程、函数和触发器差异 |
内存中优化 | 在“高级”和“业务关键”服务层级中为是。 在超大规模服务层级中为非持久性内存中 OLTP 对象(如内存优化表变量)提供有限支持。 |
在“业务关键”服务层级中为是。 |
语言元素 | 大多数,请参阅“单个元素” | 是,请参阅 T-SQL 差异 |
账本 | 是 | 是 |
链接功能 | 否 | 是(DR 预览版) |
链接服务器 | 否,请参阅弹性查询 | 是的。 仅适用于没有分布式事务的 SQL Server 和 SQL 数据库。 |
从文件(CSV、Excel)中读取数据的链接服务器 | 否。 使用 BULK INSERT 或 OPENROWSET 来替代 CSV 格式。 | 否。 使用 BULK INSERT 或 OPENROWSET 来替代 CSV 格式。 在 SQL 托管实例反馈项中跟踪这些请求 |
日志传送 | 每个数据库均包含通过冗余实现可用性。 业务连续性概述中对灾难恢复进行了探讨。 | 以本机内置方式成为 Azure 数据迁移服务 (DMS) 迁移过程的一部分。 以本机方式专为自定义数据迁移项目而构建成外部日志重播服务。 不可用作高可用性解决方案,因为每个数据库都附带其他通过冗余实现可用性方法,并且我们不建议使用日志传送作为高可用性替代方案。 业务连续性概述中对灾难恢复进行了探讨。 不可用作数据库之间的复制机制 - 请使用业务关键层、故障转移组或事务复制中的辅助副本作为替代方案。 |
登录名和用户 | 是,但 CREATE LOGIN 和 ALTER LOGIN 语句有限。 不支持 Windows 登录名。 Microsoft Entra 登录预览版已开放。 EXECUTE AS LOGIN 不受支持 - 使用 EXECUTE AS USER 。 |
是,但有一些差异。 请参阅适用于 Azure SQL 托管实例的 Windows 身份验证 - 该过程需要与 Microsoft Entra ID 进行 Active Directory 同步。 |
维护时段选择 | 是 | 是 |
配置计划内维护事件的提前通知 | 是 | 是,处于预览状态 |
批量导入中的最小日志记录 | 否,仅支持完整恢复模式。 | 否,仅支持完整恢复模式。 |
修改系统数据 | 否 | 是 |
OLE 自动化 | 否 | 否 |
OPENDATASOURCE | 否 | 是,仅适用于 SQL 数据库、SQL 托管实例和 SQL Server。 请参阅 T-SQL 差异 |
OPENQUERY | 否 | 是,仅适用于 SQL 数据库、SQL 托管实例和 SQL Server。 请参阅 T-SQL 差异 |
OPENROWSET | 是,只是为了从 Azure Blob 存储导入。 | 是,仅适用于 SQL 数据库、SQL 托管实例和 SQL Server,以及从 Azure Blob 存储进行导入的操作。 请参阅 T-SQL 差异 |
运算符 | 大多数,请参阅“单个运算符” | 是,请参阅 T-SQL 差异 |
Polybase | 否。 可以使用 OPENROWSET 函数或使用引用 Synapse Analytics 中的无服务器 SQL 池的外部表查询放置在 Azure Blob 存储上的文件中的数据。 |
是的,对于 Azure Data Lake Storage (ADLS) 和 Azure Blob 存储作为数据源。 有关更多详细信息,请参阅使用 Azure SQL 托管实例进行数据虚拟化。 |
查询通知 | 否 | 是 |
查询存储 | 是 | 是 |
次要副本的查询存储 | 否,次要副本功能的查询存储不适用于 Azure SQL 数据库。 目前,次要副本上的查询存储包含有关主要副本中的工作负载的信息。 | 否,次要副本功能的查询存储不适用于 Azure SQL 托管实例。 目前,次要副本上的查询存储包含有关主要副本中的工作负载的信息。 |
机器学习服务(以前称为 R Services) | 否 | 是,请参阅 Azure SQL 托管实例中的机器学习服务 |
恢复模型 | 仅支持保证高可用性的完整恢复。 “简单”和“批量日志记录”恢复模型不可用。 | 仅支持保证高可用性的完整恢复。 “简单”和“批量日志记录”恢复模型不可用。 |
资源调控器 | 否 | 是 |
RESTORE 语句 | 否 | 是,对 Azure Blob 存储上的备份文件使用必需的 FROM URL 选项。 请参阅还原差异 |
从备份还原数据库 | 仅从自动备份还原,请参阅从备份还原数据库 | 从自动备份还原,请参阅从备份还原数据库;从 Azure Blob 存储中的完整备份还原,请参阅备份差异 |
将数据库还原到 SQL Server | 否。 使用 BACPAC 或 BCP 而不是本机还原。 | 是的,仅适用于具有 SQL Server 2022 更新策略的实例中的 SQL Server 2022。 有关详细信息,请查看将数据库从 Azure SQL 托管实例还原到 SQL Server 2022。 否则,请使用 BACPAC、BCP 或事务复制。 |
语义搜索 | 否 | 否 |
Service Broker | 否 | 是的。 请参阅 Service Broker 差异 |
服务器配置设置 | 否 | 是,请参阅 T-SQL 差异 |
SET 语句 | 大多数,请参阅“单个语句” | 是,请参阅 T-SQL 差异 |
SQL Server 代理 | 否,请参阅弹性作业 | 是,请参阅 SQL Server 代理差异 |
SQL Server 审核 | 否,请参阅 Azure SQL 数据库的审核 | 是,请参阅审核差异 |
Synapse Link for SQL | 是 | 否 |
系统存储函数 | 大多数,请参阅“单个函数” | 是,请参阅存储过程、函数和触发器差异 |
系统存储过程 | 部分,请参阅“单个存储过程” | 是,请参阅存储过程、函数和触发器差异 |
系统表 | 部分,请参阅“单个表” | 是,请参阅 T-SQL 差异 |
系统目录视图 | 部分,请参阅“单个视图” | 是,请参阅 T-SQL 差异 |
TempDB | 是的。 每个数据库的每个核心为 32GB 大小。 | 是的。 整个 GP 层的每个 vCore 为 24GB 大小,受 BC 层上的实例大小限制 |
临时表 | 本地和数据库范围的全局临时表 | 本地和实例范围的全局临时表 |
时区选择 | 否 | 是,请参阅时区,必须在创建 SQL 托管实例时进行配置。 |
跟踪标志 | 否 | 是,但仅支持有限的全局跟踪标志集。 请参阅 DBCC 差异 |
事务复制 | 是,仅限事务性和快照复制订户 | 是,请参阅 SQL 托管实例中的复制限制。 |
透明数据加密 (TDE) | 是,请参阅适用于 Azure SQL 的 TDE | 是,请参阅适用于 Azure SQL 的 TDE |
Windows 身份验证 | 否 | 是,请参阅 Microsoft Entra 主体的 Windows 身份验证 |
Windows Server 故障转移群集 | 否。 每个数据库附带提供高可用性的其他技术。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 | 否。 每个数据库附带提供高可用性的其他技术。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 |
注意
某些 Azure SQL 托管实例功能可用性取决于配置的实例更新策略。
平台功能
Azure 平台提供许多 PaaS 功能,可以增大标准数据库功能的价值。 有许多外部服务可与 Azure SQL 数据库和 Azure SQL 托管实例配合使用。
平台功能 | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
活动异地复制 | 是,请参阅活动异地复制 - 所有服务层。 | 否,请参阅用作替代方案的故障转移组。 |
自动缩放 | 是,但仅限无服务器模型。 在非服务器模式下,可以快速联机更改服务层级(更改 vCore、存储或 DTU)。 更改服务层级只会造成极短时间的停机,甚至不会导致任何停机。 | 否,需要选择预留的计算和存储。 可联机更改服务层级(vCore 或最大存储),只会造成极短时间的停机,甚至不会导致任何停机。 |
自动备份 | 是,请参阅 Azure SQL 数据库中的自动备份。 完整备份每 7 天一次,差异备份每 12 小时一次,日志备份每 5-10 分钟一次。 | 是,请参阅 Azure SQL 托管实例中的自动备份。 完整备份每 7 天一次,差异备份每 12 小时一次,日志备份每 5-10 分钟一次。 |
自动优化(索引) | 是,请参阅自动优化 | 否 |
可用性区域 | 是 | 是,在预览版中,目前仅适用于“业务关键”层 |
Azure 资源运行状况 | 是 | 是 |
短期备份保留 | 是,请参阅短期保留。 默认为 7 天,最长 35 天。 | 是,请参阅短期保留。 1-35 天,默认为 7 天。 |
Azure 数据库迁移服务 (DMS) | 是 | 是 |
数据迁移服务 (DMA) | 是 | 否 |
弹性作业 | 是,请参阅弹性作业 | 否。 使用 SQL 代理或 Azure 自动化。 |
故障转移组 | 是,请参阅故障转移组 - 所有服务层。 | 是,请参阅故障转移组。 |
文件系统访问 | 否。 使用 BULK INSERT 或 OPENROWSET 作为替代方法来访问和加载 Azure Blob 存储中的数据。 | 否。 使用 BULK INSERT 或 OPENROWSET 作为替代方法来访问和加载 Azure Blob 存储中的数据。 |
异地还原 | 是,请参阅异地还原 | 是,请参阅异地还原 |
长期保留 (LTR) | 是,请参阅长期保留,将自动创建的备份最长保留 10 年。 | 是,请参阅长期保留,将自动创建的备份最长保留 10 年。 |
暂停/恢复 | 是,在无服务器模型中 | 是,使用停止/启动预览 |
基于策略的管理 | 否 | 否 |
公共 IP 地址 | 是的。 访问权限可以使用防火墙或服务终结点来限制。 | 是的。 需要显式启用,且必须在 NSG 规则中启用端口 3342。 可根据需要禁用公共 IP。 有关更多详细信息,请参阅公共终结点。 |
数据库时间点还原 | 是,请参阅时间点还原 | 是,请参阅时间点还原 |
资源池 | 是,用作弹性池 | 是的。 SQL 托管实例的单个实例可以包含多个共享同一资源池的数据库。 此外,还可以在可共享资源的实例池(预览版)中部署 SQL 托管实例的多个实例。 |
纵向扩展或缩减(联机) | 是,可以更改 DTU、预留的 vCore 数或最大存储,这只会造成极短时间的停机。 | 是,可以更改预留的 vCore 数或最大存储,这只会造成极短时间的停机。 |
SQL 别名 | 否,使用 DNS 别名 | 否,使用 Cliconfg 在客户端计算机上设置别名。 |
数据库观察程序(预览版) | 是 | 是 |
SQL 数据同步 | 是,但 SQL 数据同步将于 2027 年停用。 相反,请参阅 SQL 数据同步停用:迁移到替代解决方案。 | 否,请使用事务复制。 |
SQL Server Analysis Services (SSAS) | 否,Azure Analysis Services 是一项单独的 Azure 云服务。 | 否,Azure Analysis Services 是一项单独的 Azure 云服务。 |
SQL Server Integration Services (SSIS) | 是,使用 Azure 数据工厂 (ADF) 环境中的托管 SSIS ,其中程序包存储在由 Azure SQL 数据库承载的 SSISDB 中并在 Azure SSIS 集成运行时 (IR) 上执行,请参阅在 ADF 中创建 Azure-SSIS IR。 若要比较 SQL 数据库和 SQL 托管实例中的 SSIS 功能,请参阅比较 SQL 数据库和 SQL 托管实例。 |
是,使用 Azure 数据工厂 (ADF) 环境中的托管 SSIS,其中包存储在由 SQL 托管实例托管的 SSISDB 中并在 Azure SSIS Integration Runtime (IR) 上执行,请参阅在 ADF 中创建 Azure-SSIS IR。 若要比较 SQL 数据库和 SQL 托管实例中的 SSIS 功能,请参阅比较 SQL 数据库和 SQL 托管实例。 |
SQL Server Reporting Services (SSRS) | 否 - 请参阅 Power BI | 否 - 请改用 Power BI 分页报表或在 Azure VM 上托管 SSRS。 虽然 SQL 托管实例不能将 SSRS 作为服务运行,但它可以使用 SQL Server 身份验证为安装在 Azure 虚拟机上的报表服务器托管 SSRS 目录数据库。 |
Query Performance Insight | 是 | 否。 使用 SQL Server Management Studio 和 Azure Data Studio 中的内置报告。 |
VNet | 部分支持,可以使用 VNet 终结点进行受限访问 | 是,SQL 托管实例注入到 VNet 中。 |
VNet 服务终结点 | 是,请参阅虚拟网络服务终结点。 | 是,请参阅服务终结点策略。 |
VNet 全球对等互连 | 是,使用专用 IP 和服务终结点 | 是,使用虚拟网络对等互连。 |
专用连接 | 是,使用专用链接 | 是,使用 VNet - 本地终结点或专用终结点 |
资源限制
下表比较了 Azure SQL 数据库和 Azure SQL 托管实例可用的最大资源限制:
类别 | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
计算大小 | 最多 128 个 vCore | 最多 128 个 vCore |
存储大小 | 1 GB - 100 TB | 16 TB |
Tempdb 大小 | 每个 vCore 32 GB,最多 2,560 GB | 最大 4 TB - 受保留的存储大小限制 |
日志写入吞吐量 | 高达 100 MB/秒 | 每个虚拟核心 4.5 MB/秒(最大 192 MB/秒) |
可用性 | 默认 SLA 99.995% 的 SLA(启用区域冗余) |
默认 SLA |
备份 | 可以选择本地冗余 (LRS)、区域冗余 (ZRS) 或异地冗余 (GRS) 存储 1-35 天(默认值为 7 天)的保留期,最长的长期保留期为 10 年 |
选项:本地冗余 (LRS)、区域冗余 (ZRS)、异地冗余 (GRS) 或异地区域冗余 (GZRS) 存储 1-35 天(默认值为 7 天)的保留期,最长的长期保留期为 10 年 |
只读副本 | 具有 1-4 个高可用性副本或 1-30 个命名副本的读取扩展 0 - 4 异地副本 |
1 内置高可用性副本是可读的 0-1 使用故障转移组的异地副本 |
折扣模型 | 预留实例 Azure 混合权益(在开发/测试订阅中不可用) 企业和即用即付开发/测试产品/服务订阅 |
预留实例 Azure 混合权益(在开发/测试订阅中不可用) 企业和即用即付开发/测试产品/服务订阅 |
若要详细了解 Azure SQL 数据库的资源限制,请查看:
若要详细了解 Azure SQL 托管实例的资源限制,请查看:资源限制。
工具
Azure SQL 数据库和 Azure SQL 托管实例支持各种可帮助管理数据的数据工具。
工具 | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
Azure 门户 | 是 | 是 |
Azure 门户查询编辑器 | 是 | 否 |
Azure CLI | 是 | 是 |
Azure Data Studio | 是 | 是 |
Azure PowerShell | 是 | 是 |
BACPAC 文件(导出) | 是,请参阅 SQL 数据库导出 | 是,请参阅 SQL 托管实例导出 |
BACPAC 文件(导入) | 是,请参阅 SQL 数据库导入 | 是,请参阅 SQL 托管实例导入 |
Data Quality Services (DQS) | 否 | 否 |
Master Data Services (MDS) | 否 | 否。 在 Azure VM 上托管 MDS。 虽然 SQL 托管实例不能将 MDS 作为服务运行,但它可以使用 SQL Server 身份验证为安装在 Azure 虚拟机上的 MDS 服务托管 MDS 数据库。 |
SMO | 是,请参阅 SMO。 | 是,从 SMO 版本 150 开始。 |
SQL Server Data Tools (SSDT) | 是 | 是 |
SQL Server Management Studio (SSMS) | 是 | 是,18.0 和更高版本 |
SQL Server PowerShell | 是 | 是 |
SQL Server Profiler | 否,请参阅扩展事件 | 是 |
System Center Operations Manager | 是,请参阅适用于 Azure SQL 数据库的 Microsoft System Center 管理包。 | 是,请参阅适用于 Azure SQL 托管实例的 Microsoft System Center 管理包。 |
迁移方法
可以使用不同的迁移方法在 SQL Server、Azure SQL 数据库和 Azure SQL 托管实例之间移动数据。 某些方法是联机的,在运行迁移时,它们会拾取对源所做的全部更改;在脱机方法中,当迁移正在进行时,你需要停止正在修改源中数据的工作负载。
Source | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
SQL Server(本地、Azure VM、Amazon RDS) | 联机:事务复制 脱机:数据迁移服务 (DMS)、BACPAC 文件(导入)、BCP |
在线:托管实例链接、日志重播服务、Azure 数据迁移服务 (DMS)、事务复制 离线:Azure 数据库迁移服务、本机备份/还原、BACPAC 文件(导入)、BCP、快照复制 |
单一数据库 | 脱机:BACPAC 文件(导入)、BCP | 脱机:BACPAC 文件(导入)、BCP |
SQL 托管实例 | 联机:事务复制 脱机:BACPAC 文件(导入)、BCP、快照复制 |
联机:数据库复制/移动预览版、事务复制 脱机: 跨实例时间点还原(Azure PowerShell 或 Azure CLI)、本机备份/还原、BACPAC 文件(导入)、BCP、快照复制 |
相关内容
Microsoft 会继续向 Azure SQL 数据库添加功能。 访问针对 Azure 的服务更新网页,并使用以下筛选器获取最新更新:
- 筛选为 Azure SQL 数据库。
- 筛选为针对 SQL 数据库功能的正式发布版本 (GA) 公告。
若要详细了解 Azure SQL 数据库和 Azure SQL 托管实例,请参阅: