This relates to my previous post. By not doing a full cache, the comparison is actually being done by SQL Server. I'm not sure exactly what SSIS does in partial cache, but my guess is if a match is not found in memory then the query is sent to SQL Server and is done there. Basically you are making a call to the SQL Server for each row in your source. I'd really suggest trying trimming the data at the source and in the lookup as I think this will allow you to use the full cache and reduce the round-trips to the SQL Server.
Jack Corbett
Consultant - Straight Path Solutions
Check out these links on how to get faster and more accurate answers:
Forum Etiquette: How to post data/code on a forum to get the best help
Need an Answer? Actually, No ... You Need a Question