I’ve been wondering, what’s the complexity difference between these two cases:
Case 1: An OLE DB Source query, written like this:
select *
from A
where A.value > 1
Case 2: An OLE DB Source query, and the where clause is put in Conditional Split
select * from A
with the Conditional Split after the OLE DB Source query, containing: value > 1.
Performance-wise, does it have any difference? And for more complex query, does it have any significant impact also?
Yes there is a performance difference.
Case 2 will return all data records from table A and store them in the SSIS memory buffer before passing them on to the Conditional Split Component for filtering.
Case 1 immediately returns a smaller data set to the SSIS memory buffer.
For further reading take a look at: