sql - SSIS 不识别索引?

标签 sql sql-server database ssis dataflow

我有一个表,在 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/

相关文章:

sql-server - sql server 中所有数据库的默认位置在哪里

sql-server - 使用 polybase 创建从 sql server 到 hadoop 的外部表的问题

php - MYSQL 结果没有正确返回

c# - 如何以编程方式在 C# 中创建 Microsoft Access 数据库?

mysql - 程序错误 1064

sql - 为什么索引不用于某些值?

sql-server - 如何使用 sequelize 定义 NVARCHAR(MAX) 字段?

mysql - postgres - 修改 xml(MySql UpdateXml 替代)

SQL Server 从查询返回的表中选择作为表名列表

database - Windows 8 Metro 风格应用程序是否支持 SQL Server CE 本地数据库?