介绍
你将了解如何在 Microsoft Fabric 中设计和实现跨 SQL Server、Azure SQL 数据库、Azure SQL 托管实例和 SQL 数据库的各种数据库对象。 适当的数据库对象设计对于在这些平台上构建高性能、可缩放且可维护的 SQL 解决方案至关重要。
作为 SQL 开发人员,你可能注意到数据库对象设计决策比应用程序代码更永久。 虽然可以重构 C# 类或重写影响最小的微服务,但将表从行存储更改为列存储、改造临时历史记录跟踪或从标识列切换到序列对象需要迁移,这些迁移可以锁定表数小时并中断生产系统。
在本模块中学习的专用对象类型不仅仅是以后可以添加的性能优化。 它们从根本上改变了在引擎级别存储、查询和验证数据的方式。 需要临时审核时选择标准表意味着手动生成触发器和历史记录表。 选择在您的架构需要分布式序列时使用IDENTITY,将迫使在应用程序层中采取变通措施。
通过预先了解这些技术对象,可以设计出避免痛苦重写即可演进的系统,以支持区块链式验证、毫秒级延迟缓存或实时分析等功能。一旦固化在不同的基础之上,这些功能将难以变更。
学习内容
你将探索跨 Azure SQL 数据库、Microsoft Fabric 中的 SQL 数据库和 Azure SQL 托管实例应用的数据库对象设计技术:
表设计和实现 - 使用适当的数据类型、大小和结构创建表。 了解如何在您的工作负荷中选择行存储索引和列存储索引,无论是在 Azure SQL 数据库上构建事务性应用还是在 Fabric 中的运营分析数据库。
专用表类型 - 在 SQL 托管实例中使用内存表来应对高吞吐量场景,使用时态表在所有平台进行审核追踪,使用外部表实现与 Fabric Lakehouse 的集成,使用 LEDGER 表用于符合性关键应用程序,以及使用 GRAPH 表处理复杂关系。
约束和验证 - 实现主键、外键、唯一约束、CHECK 约束和 DEFAULT 值,以确保数据库为微服务、企业应用程序或馈送分析管道提供数据完整性。
高级功能 - 在云原生应用中为灵活架构使用 JSON 列,实现针对平台查询引擎优化的索引,以及将 SEQUENCE 对象用于分布式 ID 生成模式。
分区策略 - 为大型数据库设计和实现表和索引分区。 对于 Azure SQL 数据库中的超大规模数据库、SQL 托管实例中的多 TB 数据库以及 Fabric 运营数据库中的时序数据至关重要。
为什么这很重要
有效的数据库对象设计直接影响:
- 性能 - 设计良好的表和索引可减少查询执行时间
- 数据完整性 - 适当的约束可确保数据一致性和准确性
- 维护 - 组织的对象设计简化了数据库管理
- AI 功能 - 适当的数据结构可实现 AI 功能集成
- 可伸缩性 - 分区可有效地处理大型数据集
让我们首先探讨如何跨 Microsoft 的 SQL 平台设计和实现有效的表结构!