功能比较:Azure SQL 数据库和 Azure SQL 托管实例

适用于: Azure SQL 数据库 Azure SQL 托管实例

Azure SQL 数据库服务和 SQL 托管实例均与最新稳定版本的 SQL Server 共用一个通用代码库。 大多数标准 SQL 语言、查询处理和数据库管理功能都是相同的。 SQL Server 与 SQL 数据库或 SQL 托管实例都有以下功能:

Azure 管理数据库并保证其高可用性。 可能影响高可用性或无法在 PaaS 领域中使用的某些功能在 SQL 数据库和 SQL托管实例中会受到限制。 下表描述了这些功能。

如需有关差异的更多详细信息,请查看相关页面:

SQL 数据库和 SQL 托管实例的功能

下表列出了 SQL Server 的主要功能,并说明该功能在 Azure SQL 数据库或 Azure SQL 托管实例中是部分受支持还是完全受支持,同时提供了指向该功能的详细信息的链接。

功能 Azure SQL 数据库 Azure SQL 托管实例
Always Encrypted 是 - 请参阅证书存储密钥保管库 是 - 请参阅证书存储密钥保管库
Always On 可用性组 每个数据库都保证 99.99-99.995% 可用性简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论 每个数据库都保证 99.99.% 可用性,并且不能由用户管理简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 使用自动故障转移组在另一个区域中配置辅助 SQL 托管实例。 不能将 SQL Server 实例和 SQL 数据库用作 SQL 托管实例的辅助数据库。
附加数据库
审核 ,但有一些差异
Azure Active Directory (Azure AD) 身份验证 是的。 仅限 Azure AD 用户。 是的。 包括服务器级 Azure AD 登录名。
备份命令 否,仅系统启动的自动备份 - 请参阅自动备份 是,用户发起的仅将备份复制到 Azure Blob 存储的操作(用户无法发起自动系统备份)- 请参阅备份差异
内置函数 大多数 - 请参阅单个函数 是 - 请参阅存储过程、函数和触发器差异
BULK INSERT 语句 是,但是只能从充当源的 Azure Blob 存储进行。 是,但是只能从充当源的 Azure Blob 存储进行 - 请参阅差异
证书和非对称密钥 是,无法访问文件系统完成 BACKUPCREATE 操作。 是,无法访问文件系统完成 BACKUPCREATE 操作 - 请参阅证书差异
更改数据捕获 - CDC
排序规则 - 服务器/实例 否,始终使用默认的服务器排序规则 SQL_Latin1_General_CP1_CI_AS 是,可以在创建实例时设置,以后不可更新。
列存储索引 是 - 高级层、标准层 - S3 及以上层、常规用途层、业务关键层和超大规模层
公共语言运行时 - CLR 是,但无权在 CREATE ASSEMBLY 语句中访问文件系统 - 请参阅 CLR 差异
凭据 是,但是仅限数据库范围的凭据 是,但仅支持 Azure Key VaultSHARED ACCESS SIGNATURE - 请参阅 详细信息
跨数据库/三部分名称查询 否 - 请参阅弹性查询 是,外加弹性查询
跨数据库事务 是,在实例中。 对于跨实例查询,请参阅链接服务器的差异
数据库邮件 - DbMail
数据库镜像
数据库快照
DBCC 语句 大多数 - 请参阅单个语句 是 - 请参阅 DBCC 差异
DDL 语句 大多数 - 请参阅单个语句 是 - 请参阅 T-SQL 差异
DDL 触发器 仅数据库
分布式分区视图
分布式事务 - MS DTC 否 - 请参阅弹性事务 否 - 请参阅链接服务器的差异。 尝试在迁移过程中将多个分布式 SQL Server 实例中的数据库整合到一个 SQL 托管实例中。
DML 触发器 大多数 - 请参阅单个语句
DMV 大多数 - 请参阅单个 DMV 是 - 请参阅 T-SQL 差异
弹性查询(公共预览版) 是,使用所需的 RDBMS 类型。
事件通知 否 - 请参阅警报
表达式
扩展事件 (XEvent) 部分 - 请参阅 SQL 数据库中的扩展事件 是 - 请参阅扩展事件的差异
扩展的存储过程
文件和文件组 仅限主文件组 是的。 文件路径是自动分配的,不能在 ALTER DATABASE ADD FILE 语句中指定文件位置。
文件流
全文搜索 (FTS) 是,但不支持第三方断字符 是,但不支持第三方断字符
函数 大多数 - 请参阅单个函数 是 - 请参阅存储过程、函数和触发器差异
内存中优化 “高级”和“业务关键”服务层级中为是。
超大规模服务层级中为非持久性内存中 OLTP 对象(如内存优化表变量)提供有限支持。
“业务关键”服务层级中为是
语言元素 大多数 - 请参阅单个元素 是 - 请参阅 T-SQL 差异
链接服务器 否 - 请参阅弹性查询 是的。 仅适用于没有分布式事务的 SQL Server 和 SQL 数据库
从文件(CSV、Excel)中读取数据的链接服务器 否。 使用 BULK INSERTOPENROWSET 来替代 CSV 格式。 否。 使用 BULK INSERTOPENROWSET 来替代 CSV 格式。
日志传送 每个数据库均包含高可用性业务连续性概述中对灾难恢复进行了探讨。 以本机内置方式成为 Azure 数据迁移服务 (DMS) 迁移过程的一部分。 以本机方式专为自定义数据迁移项目而构建成外部日志重播服务 (LRS)
不可用作高可用性解决方案,因为每个数据库都附带其他高可用性方法,并且我们不建议使用日志传送作为高可用性替代方案。 业务连续性概述中对灾难恢复进行了探讨。 不可用作数据库之间的复制机制 - 请使用业务关键层自动故障转移组事务复制中的辅助副本作为替代方案。
登录名和用户 是,但是 CREATEALTER 登录语句不提供所有选项(没有 Windows 和服务器级别 Azure Active Directory 登录名)。 不支持 EXECUTE AS LOGIN - 请改用 EXECUTE AS USER 是,但有一些差异。 不支持 Windows 登录名,应将其替换为 Azure 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 函数查询 Azure Blob 存储上的文件中的数据。 否。 可以使用 OPENROWSET 函数查询 Azure Blob 存储上的文件中的数据。
查询通知
恢复模型 仅支持保证高可用性的完整恢复。 “简单”和“批量日志记录”恢复模式不可用。 仅支持保证高可用性的完整恢复。 “简单”和“批量日志记录”恢复模式不可用。
资源调控器
RESTORE 语句 是,对 Azure Blob 存储上的备份文件使用必需的 FROM URL 选项。 请参阅还原差异
从备份还原数据库 仅从自动备份 - 请参阅 SQL 数据库恢复 从自动备份 - 请参阅 SQL 数据库恢复;从 Azure Blob 存储中的完整备份 - 请参阅备份差异
将数据库还原到 SQL Server 否。 使用 BACPAC 或 BCP 而不是本机还原。 否,因为 SQL 托管实例中使用的 SQL Server 数据库引擎的版本高于本地使用的 SQL Server 的任何 RTM 版本。 改用 BACPAC、BCP 或事务复制。
语义搜索
Service Broker 是,但仅限在实例中。 如果使用远程 Service Broker 路由,请在迁移期间尝试将多个分布式 SQL Server 实例中的数据库整合到一个 SQL 托管实例中,并只使用本地路由。 请参阅 Service Broker 差异
服务器配置设置 是 - 请参阅 T-SQL 差异
SET 语句 大多数 - 请参阅单个语句 是 - 请参阅 T-SQL 差异
SQL Server 代理 否 - 请参阅弹性作业(预览版) 是 - 请参阅 SQL Server 代理差异
SQL Server 审核 否 - 请参阅 SQL 数据库审核 是 - 请参阅审核差异
系统存储函数 大多数 - 请参阅单个函数 是 - 请参阅存储过程、函数和触发器差异
系统存储过程 部分 - 请参阅单个存储过程 是 - 请参阅存储过程、函数和触发器差异
系统表 部分 - 请参阅单个表 是 - 请参阅 T-SQL 差异
系统目录视图 部分 - 请参阅单个视图 是 - 请参阅 T-SQL 差异
TempDB 是的。 每个数据库的每个核心为 32GB 大小 是的。 整个 GP 层的每个 vCore 为 24GB 大小,受 BC 层上的实例大小限制
临时表 本地和数据库范围的全局临时表 本地和实例范围的全局临时表
时区选择 ,必须在创建 SQL 托管实例时配置。
跟踪标志 是,但仅支持有限的全局跟踪标志集。 请参阅 DBCC 差异
事务复制 是,仅限事务性和快照复制订户 是,目前为公共预览版。 请参阅此处的约束。
透明数据加密 (TDE) 是 - 仅限“常规用途”和“业务关键”服务层级
Windows 身份验证
Windows Server 故障转移群集 否。 每个数据库附带提供高可用性的其他技术。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。 否。 每个数据库附带提供高可用性的其他技术。 简要介绍如何使用 Azure SQL 数据库确保业务连续性中对灾难恢复进行了讨论。

平台功能

Azure 平台提供许多 PaaS 功能,可以增大标准数据库功能的价值。 可将许多外部服务与 Azure SQL 数据库配合使用。

平台功能 Azure SQL 数据库 Azure SQL 托管实例
活动异地复制 是 - 除超大规模之外的所有服务层级 否,请参阅用作替代方案的自动故障转移组
自动故障转移组 是 - 除超大规模之外的所有服务层级 是,请参阅自动故障转移组
自动缩放 是,但仅限无服务器模型。 在非服务器模式下,可以快速联机更改服务层级(更改 vCore、存储或 DTU)。 更改服务层级只会造成极短时间的停机,甚至不会导致任何停机。 否,需要选择预留的计算和存储。 可联机更改服务层级(vCore 或最大存储),只会造成极短时间的停机,甚至不会导致任何停机。
自动备份 是的。 完整备份每 7 天一次,差异备份每 12 小时一次,日志备份每 5-10 分钟一次。 是的。 完整备份每 7 天一次,差异备份每 12 小时一次,日志备份每 5-10 分钟一次。
自动优化(索引)
Azure 资源运行状况
备份保留 是的。 默认为 7 天,最长 35 天。 是的。 默认为 7 天,最长 35 天。
数据迁移服务 (DMS)
弹性作业 是 - 请参阅弹性作业(预览版) 否(可以改用 SQL 代理)。
文件系统访问 否。 使用 BULK INSERTOPENROWSET 作为替代方法来访问和加载 Azure Blob 存储中的数据。 否。 使用 BULK INSERTOPENROWSET 作为替代方法来访问和加载 Azure Blob 存储中的数据。
异地还原
超大规模体系结构
长期备份保留 - LTR 是,将自动创建的备份最长保留 10 年。 还不可以。 使用 COPY_ONLY 手动备份作为临时解决方法。
暂停/恢复 是,在无服务器模型
基于策略的管理
公共 IP 地址 是的。 访问权限可以使用防火墙或服务终结点来限制。 是的。 需要显式启用,且必须在 NSG 规则中启用端口 3342。 可根据需要禁用公共 IP。 有关更多详细信息,请参阅公共终结点
数据库时间点还原 是 - 除超大规模之外的所有服务层级 - 请参阅 SQL 数据库恢复 是 - 请参阅 SQL 数据库恢复
资源池 是,用作弹性池 是的。 SQL 托管实例的单个实例可以包含多个共享同一资源池的数据库。
纵向扩展或缩减(联机) 是,可以更改 DTU、预留的 vCore 数或最大存储,这只会造成极短时间的停机。 是,可以更改预留的 vCore 数或最大存储,这只会造成极短时间的停机。
SQL 别名 否,使用 DNS 别名 否,请使用 Cliconfg 在客户端计算机上设置别名。
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 Insights (QPI) 否。 使用 SQL Server Management Studio 和 Azure Data Studio 中的内置报告。
VNet 部分支持,可以使用 VNet 终结点进行受限访问 是,SQL 托管实例注入到客户的 VNet 中。 请参阅子网VNet
VNet 服务终结点
VNet 全球对等互连 是,使用专用 IP 和服务终结点 是,使用虚拟网络对等互连
专用连接 是,使用专用链接 是,使用 VNet。

工具

Azure SQL 数据库和 Azure SQL 托管实例支持各种可帮助管理数据的数据工具。

工具 Azure SQL 数据库 Azure SQL 托管实例
Azure 门户
Azure CLI
Azure Data Studio
Azure PowerShell
BACPAC 文件(导出) 是 - 请参阅 SQL 数据库导出 是 - 请参阅 SQL 托管实例导出
BACPAC 文件(导入) 是 - 请参阅 SQL 数据库导入 是 - 请参阅 SQL 托管实例导入
Data Quality Services (DQS)
Master Data Services (MDS)
SMO 是,版本 150
SQL Server Data Tools (SSDT)
SQL Server Management Studio (SSMS) 是,18.0 和更高版本
SQL Server PowerShell
SQL Server Profiler 否 - 请参阅扩展事件
System Center Operations Manager

迁移方法

可以使用不同的迁移方法在 SQL Server、Azure SQL 数据库和 Azure SQL 托管实例之间移动数据。 某些方法是 联机 的,在运行迁移时,它们会拾取对源所做的全部更改;在 脱机 方法中,当迁移正在进行时,你需要停止正在修改源中数据的工作负荷。

Source Azure SQL 数据库 Azure SQL 托管实例
SQL Server(本地、Azure VM、Amazon RDS) 联机:事务复制
脱机:数据迁移服务 (DMS)BACPAC 文件(导入)、BCP
联机: 数据迁移服务 (DMS)事务复制
脱机: 本机备份/还原、BACPAC 文件(导入)、BCP、快照复制
单一数据库 脱机: BACPAC 文件(导入)、BCP 脱机: BACPAC 文件(导入)、BCP
SQL 托管实例 联机: 事务复制
脱机: BACPAC 文件(导入)、BCP、快照复制
联机: 事务复制
脱机: 跨实例时间点还原(Azure PowerShellAzure CLI)、本机备份/还原BACPAC 文件(导入)、BCP、快照复制

后续步骤

若要详细了解 Azure SQL 数据库和 Azure SQL 托管实例,请参阅: