数据流任务失败,因为TempDB已满

问题描述

我的OLE DB源查询如下所示:

select a,b,sum(c)
from(select a,c from t1 union all 
     select a,c from t2 union all 
     select a,c from t3) a
inner join t2 on ...
group by a,b

它给了我以下错误:

SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E14。 OLE DB记录可用。源:“ Microsoft SQL Server本机客户端11.0”结果:0x80040E14说明:“警告:通过聚合或其他SET操作消除了空值。 OLE DB记录可用。源:“ Microsoft SQL Server本机客户端11.0”结果:0x80040E14说明:“由于文件组'DEFAULT'中的磁盘空间不足,无法为数据库'TEMPDB'分配新页。通过在文件组中删除对象来创建必要的空间,并添加文件组中添加其他文件,或为文件组中的现有文件设置自动增长。”

源表并不大,它们之间大约有3M行。知道我该如何处理tempdb错误吗?

解决方法

预聚合表可能帮助:

select a,b,sum(c)
from ((select a,sum(c) as c
       from t1
       group by a,b
      ) union all 
      (select a,sum(c) as c
       from t2
       group by a,sum(c)
       from t3
       group by a,b
      )
     ) t inner join
     t2
     on ...
group by a,b;

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...