Azure SQL DataBase 与传统 SQL Server 的区别对比

沈云,资深工程师,微软解决方案专家

由于Azure更新较快,此文档基于Azure SQL V12 版本,文档时间:2017年9月24日

之前有很多朋友问,Azure SQL 与SQL Server有什么样的区别,我找了一些资料,也自己总结了一些内容。如下,但对于应用设计变化和分片处理等内容比较复杂,需要更深入的去探讨。这篇文章先把功能列表先给到大家。

1.基本对比

众所周知Azure SQL是属于PaaS层的服务,因此,在运维管理和使用上,都是数据库本身级别的使用和管理,我总结了几点如下:

项目SQL ServerAzure SQL数据库

数据库构建关注服务器、操作系统、数据库实例、数据库设计管理数据库设计

数据库管理服务器硬件、操作系统、数据库实例、备份、数据库管理等数据库基本管理

数据库调优服务器硬件、操作系统、数据库实例、数据库索引、分区、磁盘等服务器硬件、操作系统、数据库实例、数据库索引、分区、磁盘等数据库索引、设计

权限操作系统级别数据库级别

成本硬件、操作系统、SQL、管理成本无硬件和管理成本

网络安全配备防火墙、安全管理设计已有免费防火墙

容量限制基本无限制,受限于本地硬件,最大512PB1TB

构架设计采用分区、文件分组等提高IO采用分片

应用设计理念范式和反范式的权衡采用横向扩展理念

容灾搭建Alwayson可设置异地复制

备份全备和日志备份自动备份

还原根据备份情况手动还原可以还原到任何时间还原点

全文检索支持不支持第三方断字符

Agent作业支持不支持

日志传送支持不支持

2. 应用设计变化

在应用设计上,云上的应用的理念应该向SaaS转换,需要设计多租户应用程序。

在多租户应用程序中,可以轻松将数据和工作负荷分区。 由于大多数请求发生在租户的限定范围内,因此可以将数据和工作负荷分区(例如,沿租户边界)。

多租户应用程序开发人员选择的设计模式通常是出于以下考虑因素:

租户隔离。开发人员需要确保租户不越权访问其他租户的数据。 这种隔离要求同时也针对其他属性,例如避开干扰性邻居、能够还原租户的数据,以及实现租户特定的自定义。

云资源成本。SaaS 应用程序需要具有成本竞争力。 多租户应用程序开发人员可能选择优化,降低云资源的使用成本,例如存储和计算成本。

简化 DevOps。多租户应用程序开发人员需要结合考虑隔离保护、维护和监视其应用程序与数据库架构的运行状况,以及排解租户的疑难问题。 应用程序开发与运营的复杂性直接导致成本增加和租户满意度难题。

伸缩性。以累加方式添加更多租户的能力,对于需要此能力的租户而言,这是 SaaS 运营成功不可或缺的能力。

常见的数据库模型设计实践:

租户各有数据库。每个租户都有自己的数据库。 租户特定的所有数据局限在该租户的数据库内,与其他租户及其数据隔离。

共享分片数据库。多个租户共享多个数据库中的一个。 使用分区策略(例如哈希、范围或列表分区),可将一组不同的租户分配到每个数据库。 这种数据分布策略通常称为分片。

共享单一数据库。单一数据库有时很大,包含按租户 ID 列区分的所有租户的数据。

3. 详细功能对比

下面是SQL Server 与Azure SQL数据库的详细功能的对比:

功能SQL ServerAzure SQL 数据库

活动异地复制不支持 – 请参阅 Always On 可用性组支持

始终加密支持支持 – 请参阅证书存储和 Key Vault

AlwaysOn 可用性组支持不支持 – 请参阅活动异地复制

附加数据库支持不支持

应用程序角色支持支持

自动缩放不支持支持 – 请参阅服务层

Azure Active Directory不支持支持

审核支持支持

BACPAC 文件(导出)支持支持

BACPAC 文件(导入)支持支持

备份支持不支持

内置函数支持大多数 – 请参阅 单个函数

更改数据捕获支持不支持

更改跟踪支持支持

排序规则语句支持支持

列存储索引支持仅限 Premium Edition

公共语言运行时 (CLR)支持不支持

包含的数据库支持支持

包含用户支持支持

控制流语言关键字支持支持

跨数据库查询支持部分 – 请参阅弹性查询

游标支持支持

数据压缩支持支持

数据库备份用户管理SQL 数据库服务管理

数据库邮件支持不支持

数据库镜像支持不支持

数据库配置设置支持支持

Data Quality Services (DQS)支持不支持

数据库快照支持不支持

数据类型支持支持

DBCC 语句支持大多数 – 请参阅单个语句

DDL 语句支持大多数 – 请参阅单个语句

DDL 触发器支持仅限数据库

分布式事务MS DTC仅限受限制的 SQL 数据库内方案

DML 语句支持大多数 – 请参阅 单个语句

DML 触发器支持支持

DMV全部部分 – 请参阅单个 DMV

弹性池不支持支持

弹性作业不支持 – 请参阅 SQL Server 代理不支持

弹性查询不支持 – 请参阅跨数据库查询支持

事件通知支持支持

表达式支持支持

扩展的事件支持部分 – 请参阅单个事件

扩展的存储过程支持不支持

文件和文件组支持仅限主文件组

文件流支持不支持

全文搜索支持不支持第三方断字符

函数支持大多数 – 请参阅单个函数

内存中优化支持仅限 Premium Edition

作业请参阅 SQL Server Agent(SQL Server 代理)不支持

JSON 数据支持支持支持

语言元素支持大多数 – 请参阅单个元素

链接的服务器支持不支持 – 请参阅弹性查询

日志传送支持不支持 – 请参阅活动异地复制

Master Data Services (MDS)支持不支持

批量导入时的最小日志记录支持不支持

修改系统数据支持不支持

联机索引操作支持支持 – 按服务层限制的事务大小

运算符支持大多数 – 请参阅单个运算符

数据库时间点还原支持支持

Polybase支持不支持

基于策略的管理支持不支持

谓词支持大多数 – 请参阅单个谓词

R 服务支持

资源调控器支持不支持

RESTORE 语句支持不支持

从备份还原数据库支持仅限从内置备份还原

行级别安全性支持支持

语义搜索支持不支持

序列号支持支持

服务中转站支持不支持

服务器配置设置支持不支持 – 请参阅数据库配置选项

Set 语句支持大多数 – 请参阅单个语句

空间支持支持

SQL Server 代理支持不支持

SQL Server Analysis Services (SSAS)支持不支持 – 请参阅 Azure Analysis Services

SQL Server 集成服务 (SSIS)支持不支持 – 请参阅 Azure 数据工厂

SQL Server PowerShell支持支持

SQL Server 探查器支持不支持 – 请参阅扩展事件

SQL Server 复制支持仅限事务和快照复制订户

SQL Server Reporting Services (SSRS)支持不支持

存储过程支持支持

系统存储函数支持部分 – 请参阅单个函数

系统存储过程支持部分 – 请参阅单个存储过程

系统表支持部分 – 请参阅单个表

系统目录视图支持部分 – 请参阅单个视图

表分区支持支持 – 仅限主文件组

临时表本地和全局仅限本地

临时表支持支持

事务支持支持

变量支持支持

透明数据加密 (TDE)支持支持

Windows Server 故障转移群集支持不支持 – 请参阅活动异地复制

XML 索引支持支持

总结

以上列出了所有的功能列表, 可以点击链接看更详细的说明。

特别是不支持部分,需要深入了解。才能知道如何去使用Azure SQL。

立即访问http://market.azure.cn

    原文作者:ITknight
    原文地址: https://www.jianshu.com/p/aca9b64bacd1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞