ETL 开发人员报告说,他们一直在尝试一致地在 ADW 上运行我们的每周和每日流程。虽然在大多数情况下它们毫无例外地执行,但我现在收到此错误:
“由于文件组 'DEFAULT' 中的磁盘空间不足,无法为数据库 'TEMPDB' 分配新页面。通过删除文件组中的对象、向文件组中添加其他文件或为文件组中的现有文件设置自动增长来创建必要的空间。”</p>
与 DWU 设置关联的 TEMPDB 空间是否有限制?
数据库限制为 100 TB(每个门户)且未满。
ETL 开发人员报告说,他们一直在尝试一致地在 ADW 上运行我们的每周和每日流程。虽然在大多数情况下它们毫无例外地执行,但我现在收到此错误:
“由于文件组 'DEFAULT' 中的磁盘空间不足,无法为数据库 'TEMPDB' 分配新页面。通过删除文件组中的对象、向文件组中添加其他文件或为文件组中的现有文件设置自动增长来创建必要的空间。”</p>
与 DWU 设置关联的 TEMPDB 空间是否有限制?
数据库限制为 100 TB(每个门户)且未满。
Azure SQL 数据仓库确实为 tempdb 分配空间,每 100 DWU 大约 399 GB。参考这里。
你现在用的是什么DWU?考虑暂时提高您的 DWU aka 服务目标或重构您的工作以减少对 tempdb 的依赖。批处理完成后降低它。
也可能值得检查您的工作负载,例如笛卡尔积、过度排序、对临时表的过度依赖等,以查看是否可以进行任何优化。
看看你的代码的解释计划,看看你是否有比你预期的更多的数据移动。如果您发现一个查询确实更多地移动到 Q 表中,您可以调整它以避免数据移动(这可能意味着重新设计表以分布在不同的键中)。