了解基于 SQL Server 的平台选择
Microsoft的 SQL 平台提供不同的方案,设计的数据库对象必须与平台的功能和用例保持一致。 了解基础结构即服务(IaaS)与平台即服务(PaaS)之间的控制和管理权衡有助于确定哪些平台最能支持数据库设计要求。
此图显示了 PaaS 平台如何划分职责:Azure 管理数据库层以下的所有内容(物理服务器、网络、作系统修补程序和引擎更新),同时控制对应用程序最重要的内容:表、索引、约束和数据。 这种分离使你能够将时间投入到数据库设计中,而不是基础结构维护。
使用 Azure SQL 数据库进行开发
Azure SQL 数据库 是一个完全托管的 PaaS 数据库,可提供企业级性能和可用性,而无需进行基础结构管理。 多个服务层支持不同的工作负荷模式,每个模式都会影响构建数据层的方式。
“超大规模”服务层级消除了传统上与云数据库关联的许多实际限制。 单个节点的资源限制大多数数据库,但超大规模数据库没有此类限制。 借助其灵活的存储体系结构,存储会根据需要扩展,并且没有预定义的最大大小。 仅针对使用的容量计费。 对于读取密集型工作负荷,超大规模部署通过配置更多副本来处理读取操作,实现快速横向扩展。
无服务器计算层根据工作负荷需求自动缩放计算,并在空闲时暂停 - 仅在非活动期间为存储付费。 发出连接请求时,数据库会自动恢复。
注释
建议在设计应用程序时使用连接重试逻辑以应对连接恢复的延迟,并避免执行阻碍自动暂停的长时间运行事务。
智能查询处理 和 自动优化 分析工作负荷模式,以推荐或自动创建索引。 正确编制索引和统计信息时,自动计划更正可检测和修复查询回归。
内置高可用性,服务级别协议 (SLA) 承诺 99.99% 的运行时间,这意味着你可以专注于性能和数据完整性,而非复制拓扑。
迁移到 Azure SQL 托管实例
Azure SQL 托管实例 提供与最新 SQL Server Enterprise Edition 的近 100% 兼容性,始终使用自动修补运行最新的数据库引擎版本。 内置的 虚拟网络集成 提供安全隔离,而 PaaS 功能负责备份、高可用性和维护。
实例级功能包括 SQL Server 代理、Service Broker、链接服务器、具有三部分命名的跨数据库查询和数据库邮件。 托管实例链接使用分布式可用性组以近乎实时的方式将数据从 SQL Server 同步到 Azure-启用混合方案、读取卸载、灾难恢复和最短停机时间迁移。
业务关键性层中的内存中 OLTP 为延迟敏感的工作负载提供了内存优化表和本机编译的存储过程。
在 Azure 虚拟机上使用 SQL Server
Azure 虚拟机上的 SQL Server 提供基础结构即服务(IaaS)部署,可在其中控制 SQL Server 实例、数据库引擎配置以及基础 Windows 或 Linux作系统。 此部署选项为需要特定 SQL Server 版本、OS 级访问或 PaaS 产品/服务中不可用的配置的应用程序提供最大的兼容性和自定义。
SQL IaaS 代理扩展通过 Azure 门户解锁管理功能,包括自动备份、维护时段期间自动修补、Azure Key Vault 集成和 tempdb 配置。 SQL 最佳做法评估根据建议的设置验证配置,而 I/O 性能分析有助于识别存储瓶颈。 若要实现高可用性,可以配置 AlwaysOn 可用性组 或 故障转移群集实例 ,并完全控制副本放置和故障转移行为。
Microsoft Fabric 中的 SQL 数据库设计
Microsoft Fabric 中的 SQL 数据库 是基于 Azure SQL 数据库技术构建的开发人员友好事务数据库,可自动与 Fabric 的分析生态系统集成。 该平台使用与 Azure SQL 数据库相同的 SQL 数据库引擎,将 OLTP 功能与内置分析集成相结合,并消除作和分析数据存储之间的传统分离。
自动镜像会将操作表中的更改复制到 OneLake 中,以 Delta Parquet 文件格式存储。 插入、更新和删除数据时,Fabric 会自动同步这些更改,而无需 ETL 管道、触发器或额外配置。 这意味着,通过 SQL 分析终结点可以立即创建的每个表都可用于分析,该终结点提供数据的只读分析视图。 可以使用熟悉的三部分命名语法跨多个数据源进行查询,以将 SQL 数据库与其他 Fabric 仓库、lakehouses 甚至 跨数据库查询中的其他 SQL 数据库联接起来。 核心优势:分析查询针对 Delta Parquet 副本运行,而非实时操作表,因此繁重的报表工作负荷不会拖慢事务处理速度。
智能性能功能在后台自动工作,包括 自动创建索引 ,用于监视查询模式并创建索引,而无需手动干预。 该平台还支持使用语义搜索和检索扩充生成(RAG)进行 AI 开发。 通过 SqlPackage 支持 .bacpac/.dacpac 操作的数据库可移植性,通过 Fabric 源代码管理 支持 git 集成,以及通过 GraphQL API 支持现代 API 接口。
在本模块中,你将学习适用于所有平台的技术,并特别指出各平台特有的功能。