由于文件组“DEFAULT”中的磁盘 space 不足,无法为数据库“TEMPDB”分配新页面

Could not allocate a new page for database ‘TEMPDB’ because of insufficient disk space in filegroup ‘DEFAULT’

ETL 开发人员报告说他们一直在尝试 运行 我们每周和每天的 ADW 流程始终如一。虽然在大多数情况下它们都在无一例外地执行,但我现在收到此错误:

“无法为数据库‘TEMPDB’分配新页面,因为文件组‘DEFAULT’中的磁盘空间不足 space。通过删除文件组中的对象、向文件组中添加其他文件或为文件组中的现有文件设置自动增长来创建必要的space。”

与 DWU 设置关联的 TEMPDB space 是否有限制?

数据库限制为 100TB(根据门户),未满。

Azure SQL 数据仓库确实为 tempdb 分配 space,每 100 DWU 大约 399 GB。参考 here.

您目前使用的是什么 DWU?考虑暂时提高您的 DWU aka 服务 objective 或重构您的工作以减少对 tempdb 的依赖。批处理完成后将其放下。

可能还值得检查您的工作负载是否存在诸如笛卡尔积、过度排序、对临时表的过度依赖等问题,以查看是否可以进行任何优化。

查看代码的解释计划,看看是否有比预期更多的数据移动。如果您发现一个查询确实向 Q 表移动了很多,您可能可以调整它以避免数据移动(这可能意味着重新设计表以分布在不同的键中)。