我有一个SQL表,我想在SSIS中按唯一的字符串级进行聚合。其他列我很容易求和,AVG,但我希望分组的字符串名称列在向下钻取时不提供该选项。只有计数选项,这不是我当然需要的。可能的问题是什么?有谁有过这样的经历吗?Ilana

发布于 2020-04-15 01:00:00
我认为问题在于,您正在为Aggregate Transformation中的所有列选择GROUP BY,并且它试图强制您聚合某些内容。
如果您真的只是尝试对所有列执行GROUP BY操作,比如消除重复项,那么在数据源中使用SELECT DISTINCT会获得更好的性能。
Aggregate Transformation是一个完全阻塞的转换,也就是说,它需要将整个数据集拉到内存中,在内存中执行SELECT DISTINCT,然后允许细化的数据集传递到目标,从而在内存中生成两个完整的数据副本。通常,SSIS服务器对此类工作负载的处理能力不足。
通过在数据源中使用SELECT DISTINCT,繁重的任务落在了数据库服务器身上,它可以更好地处理这项工作。作为额外的好处,它将减少通过网络传输到包的数据量,因此您将在这两个操作中获得更快的速度。
发布于 2021-10-26 12:22:28
刚刚遇到了同样的问题,我使用派生列创建了一个新的DT_WSTR类型的列,而不是NTEXT,这显然不适用于Group by。
我在网上没有找到任何有用的东西,希望这对其他人也有帮助。
https://stackoverflow.com/questions/61210586
复制相似问题