我有一个表,在 varchar 列“A”上有一个非聚集索引。
当我使用 Order By A 子句时,我可以看到它扫描索引并在几秒钟内给我结果。
但是,当我对“A”列使用 SSIS 的排序组件时,我可以看到对记录进行排序需要几分钟时间。
所以我明白它不识别我的非聚集索引
有没有人知道为 SSIS 使用索引而不是使用查询而不是组件?
最佳答案
Order By A
在数据库中运行。
使用排序组件时,排序在 SSIS 运行时完成。请注意,您用来提供给排序的查询没有其中的顺序(我假设)
它是在运行时完成的,因为它与数据源无关——您的源可以是 excel 或文本文件或内存数据集或 multicase 或 pivot 或任何东西。
我的建议是尽可能多地使用数据库。
在 SSIS 包中使用排序的唯一原因是如果您的源不支持排序(即平面文件)并且您想在包中对其他内容进行合并连接。这是一个非常罕见和特殊的案例
关于sql - SSIS 不识别索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456123/