The way the tMap component works is to assign the first flow or row into it as the
Main row, and subsequent rows as
Lookups. In the default case, Lookups are read once per execution (can be configured to refresh for each Main row in tMap settings). Because you made C1 (100 records) the Main row and Table C (10000 rows) the lookup, Talend cycles through 10000 rows in memory (or disk) for
every row in C1 or Main.
One suggestion would be to flip your design around - make Table C the main, and the smaller table C1 your lookup. Another suggestion is to use a tflowtoIterate from the smaller dataset to a second tOracleInput leveraging a global variable - see screenshot below...