排查仓库问题

适用于:✅Microsoft Fabric 中的仓库

本文提供有关排查 Microsoft Fabric 仓库中的常见问题的指南。

暂时性连接错误

暂时性错误(也称为暂时性故障)的根本原因很快就能自行解决。 如果与仓库的连接之前运行正常,但在没有更改用户权限、防火墙策略和网络配置的情况下开始失效,请在联系支持人员之前尝试以下步骤:

  1. 检查仓库的状态,并确保它未处于暂停状态。
  2. 不要立即重试失败的命令。 请等待 5 到 10 分钟,建立新连接,然后重试命令。 当 Azure 系统快速将硬件资源转移到负载均衡更好的各种工作负载时,偶尔会失败。 大多数这些重新配置事件在 60 秒内就能完成。 在进行这种重新配置的过程中,可能会在连接到你的数据库时遇到问题。 当服务自动重启以解决某些问题时,连接也可能会失败。
  3. 使用其他应用程序和/或从另一台计算机进行连接。

由于 tempdb 空间问题而导致查询失败

tempdb 是引擎在查询执行期间用于满足各种临时存储需求的系统数据库。 用户无法访问或配置它。 查询可能会因为运行 tempdb 的空间不足而失败。 执行以下步骤以减少 tempdb 空间使用量:

  1. 请参阅有关统计信息的文章,以验证是否已在所有表上创建了正确的列统计信息。
  2. 确保在大型 DML 事务后更新所有表统计信息。
  3. 具有复杂 JOIN、GROUP BY 和 ORDER BY 且预期返回大型结果集的查询在执行时会使用更多 tempdb 空间。 如果可能,请更新查询以减少 GROUP BY 和 ORDER BY 列的数量。
  4. 在没有运行其他活动查询时重新运行查询,以避免在查询执行期间受到资源约束。

查询性能似乎随时间推移而下降

许多因素可能会影响查询的性能,例如表大小、数据倾斜、工作负载并发性、可用资源、网络等。仅仅是查询运行速度较慢并不一定意味着存在查询性能问题。 执行以下步骤来调查目标查询:

  1. 确定良好和不良性能运行中所有影响性能的因素的差异。
  2. 请参阅有关统计信息的文章,以验证是否已在所有表上创建了正确的列统计信息。
  3. 确保在大型 DML 事务后更新所有表统计信息。
  4. 检查基表中的数据倾斜。
  5. 暂停并恢复服务。 然后,在没有运行其他活动查询时重新运行查询。 可以使用 DMV 监视仓库工作负载

查询在长时间运行后失败。 未向客户端返回数据。

SELECT 语句可能在后端成功完成,但在尝试将查询结果集返回到客户端时失败。 可尝试使用以下步骤来辨别问题:

  1. 使用不同的客户端工具重新运行同一查询。
  2. 如果步骤 1 失败,请使用失败的 SELECT 语句运行 CTAS 命令,以将 SELECT 查询结果发送到同一仓库中的另一个表。 使用 CTAS 可避免将查询结果集发送回客户端计算机。 如果 CTAS 命令成功完成并填充了目标表,则原始查询失败可能是由仓库前端或客户端问题引起的。

联系 Microsoft 支持人员之前要收集的内容

  • 提供 Warehouse 的工作区 ID。
  • 提供语句 ID 和分布式请求 ID。 查询完成或失败后,它们将作为消息返回。
  • 请提供错误消息的确切文本。
  • 提供查询完成或失败的时间。