Sql server 在SSIS查找转换中,如果将“top 100”添加到select
我的数据流中有一个非常缓慢的查找转换。它使用以下SQL查询的结果Sql server 在SSIS查找转换中,如果将“top 100”添加到select,sql-server,ssis,Sql Server,Ssis,我的数据流中有一个非常缓慢的查找转换。它使用以下SQL查询的结果 SELECT e.intExpenseID, [expense_detail_id]=d.intExpenseDtlID, f.* FROM dbo.tblExpense e JOIN tblExpenseDtl d ON d.intExpenseID = e.intExpenseID JOIN tblExpReceiptFile f ON f.intExpenseDtlID = d.intExpenseDtlID ORDER B
SELECT e.intExpenseID, [expense_detail_id]=d.intExpenseDtlID, f.*
FROM dbo.tblExpense e
JOIN tblExpenseDtl d ON d.intExpenseID = e.intExpenseID
JOIN tblExpReceiptFile f ON f.intExpenseDtlID = d.intExpenseDtlID
ORDER BY e.intExpenseID
问题是,仅此查找就将执行时间从~1分钟增加到~12分钟,这很奇怪,因为每行的文件不应超过4-5个。因此,我将top 1000添加到SELECT,我的问题是-这会给我查找转换top的行连接结果,还是会给我行连接查找转换top的结果。如果是第二个,我将非常感谢任何关于如何加快查找速度的提示
万一有人想知道,我之所以执行查找,而不是从一开始就获取所有数据,这是有原因的。好吧,看来查找转换在我的行连接查找转换顶部工作,这意味着这是一个很好的解决我的问题的方法
实际有效的解决方案是创建额外的OLE DB源,然后代替查找转换,将其与我以前的数据流合并并连接您可以预缓存所有查找数据,或参数化缓存失败SQL语句:如果两个数据集位于同一台服务器上,则只需使用SQL.@Nick.McDermaid。如果您询问为什么我不只是提取原始源中的所有数据转换,我必须在连接其他ssis组件之前使用数据。