Fabric 数据仓库性能指南
适用于:✅Microsoft Fabric 中的仓库
这些指南可帮助你了解 Microsoft Fabric 中仓库的性能。 在文本中,你将找到要关注的指南和重要文章。 Microsoft Fabric 中的仓库是一个 SaaS 平台,其中工作负载管理、并发和存储管理等活动由平台在内部管理。 除了这种内部性能管理,你仍然可以通过针对设计良好的仓库开发高性能查询来提高性能。
冷运行(冷缓存)性能
使用本地 SSD 和内存进行缓存的操作是自动的。 查询的前 1 到3 次执行速度要明显慢于后续执行速度。 如果遇到冷运行性能问题,可以执行以下几个操作,从而提高冷运行性能:
如果第一次运行的性能至关重要,请尝试手动创建统计信息。 请查看 统计信息 一文,更好地了解统计信息的作用,并获取有关如何创建手动统计信息以提高查询性能的指导。 但是,如果第一次运行的性能不重要,则可依赖于将在第一个查询中生成的自动统计信息,并在后续运行中继续利用这些信息(前提是基础数据没有明显更改)。
如果使用 Power BI,请尽可能多地使用Direct Lake模式。
用于监视性能的指标
目前,监视中心不包括 Warehouse。 如果选择“数据仓库”,将无法从左侧导航栏访问“监视中心”。
构造管理员将能够访问容量利用率和指标报表,以获取跟踪包含仓库的容量利用率的最新信息。
使用动态管理视图 (DMV) 监视查询执行
可以使用动态管理视图 (DMV) 来监控仓库中的连接、会话和请求状态。
统计信息
仓库使用查询引擎为给定 SQL 查询创建执行计划。 提交查询时,查询优化器会尝试枚举所有可能的计划并选择最有效的候选项。 若要确定哪个计划需要最少的开销,引擎需要能够评估每个操作员可能处理的工时或行量。 然后,根据每个计划的成本,它会选择估计工时最少的计划。 统计信息是包含有关数据相关信息的对象,允许查询优化器估算这些成本。
每次数据加载或数据更新后,还可以手动更新统计信息,以确保可以生成最佳查询计划。
有关统计信息以及如何增加自动创建的统计信息的详细信息,请参阅 Fabric 数据仓库中的统计信息。
数据引入指南
将数据引入仓库有四个选项:
- COPY (Transact-SQL)
- 数据管道
- 数据流
- 跨仓库引入
若要帮助确定最适合你的选项并查看一些数据引入最佳做法,请查看 引入数据。
将 INSERT 语句分组成批(避免逐条插入)
一次性加载到具有 INSERT 语句(如下方示例所示)的小型表可能是最佳方法,具体取决于你的需求。 但是,如果一天内需要加载数千或数百万行,则单一实例 INSERT 不是最佳选项。
INSERT INTO MyLookup VALUES (1, 'Type 1')
有关如何处理这些滴流加载方案的指南,请参阅引入数据的最佳做法。
最小化事务大小
INSERT、UPDATE 和 DELETE 语句在事务中运行。 它们失败时,必须回退。 为了降低长时间回退的可能性,请尽可能将事务大小最小化。 这可以通过将 INSERT、UPDATE、DELETE 语句分成小部分来最小化事务大小。 例如,如果预期 INSERT 需要 1 小时,可将 INSERT 分成四个部分。 然后,每次运行将缩短为 15 分钟。
请考虑使用 CTAS (Transact-SQL) 将想要保留的数据写入表中,而不是使用 DELETE。 如果 CTAS 花费的时间相同,则运行起来要更安全,因为它的事务日志记录最少,并且可以根据需要快速取消。
并置客户端应用程序和 Microsoft Fabric
如果要使用客户端应用程序,请确保在靠近客户端计算机的区域中使用 Microsoft Fabric。 客户端应用程序示例包括 Power BI Desktop、SQL Server Management Studio 和 Azure Data Studio。
利用星型架构数据设计
星型架构将数据组织成事实数据表和维度表。 它通过从高度规范化的 OLTP 系统取消规范化数据、将事务数据和企业主数据引入到通用、经过清理和验证的数据结构中,从而最大程度地减少查询时的加入、减少读取的行数以及促进聚合和分组处理,从而促进分析处理。
有关更多 Warehouse 设计指南,请参阅 数据仓库中的表。
缩减查询结果集大小
缩减查询结果集大小可帮助你避免由大型查询结果引起的客户端问题。 SQL 查询编辑器结果集限制为前 10000 行,以避免在此基于浏览器的 UI 中出现这些问题。 如果需要返回超过 10000 行,请使用 SQL Server Management Studio (SSMS) 或 Azure Data Studio。
为性能选择最佳数据类型
定义表时,请使用支持数据的最小数据类型以便提高查询性能。 此建议对于 CHAR 和 VARCHAR 列很重要。 如果列中最长的值是 25 个字符,请将列定义为 VARCHAR(25)。 避免使用较大默认长度定义所有字符列。
如果可以,尽可能使用基于整数的数据类型。 SORT、JOIN 和 GROUP BY 操作在整数上的执行速度比字符数据快。
有关支持的数据类型和详细信息,请参阅 数据类型。
SQL 分析终结点性能
有关 SQL 分析终结点性能的信息和建议,请参阅 SQL 分析终结点性能注意事项。
数据压缩
数据压缩可将较小的 Parquet 文件合并为更少的较大文件,从而优化读取操作。 此过程会从不可变 Parquet 文件中消除已删除的行,因而还有助于有效地管理已删除的行。 数据压缩过程涉及将表或表段重新写入新的 Parquet 文件,这些文件已进行性能优化。 有关详细信息,请参阅博客:Fabric 仓库的自动数据压缩。
数据压缩过程无缝集成到该仓库中。 执行查询时,系统会识别可通过压缩获益的表,并执行必要的评估。 无法手动触发数据压缩。