'SSIS Alternatives to one-by-one update from RecordSet

I'm looking for a way to speed up the following process: I have a SSIS package that loads data from Excel files on a weekly basis to SQL Server.
There are 3 fields: Brand, Date, Value.
In the dataflow, I check for existing combinations of Brand+Date, and new combinations go to the table directly, the existing ones go to a RecordSet destination for updates:

DataFlow1

The next step is to update the Value of the existing combinations:

DataFlow2

As you can see, there are thousands of records to update, and it takes too long. The number of records tend to grow week by week. Please suggest.



Solution 1:[1]

The fastest way will be do this inside a Stored procedure using ELT (Extract Load Transform) approach.

  1. Push all data from excel as is into a table(called load to a staging table in theory). Since you do not seem to be concerned with data validation steps, this table can be a replica of final destination table columns.
  2. Next step is to call a stored procedure using Execute SQL task. Inside this procedure you can put all your business logic. Since this steps with native data manipulation on SQL server entities, it is the fastest alternative.
  3. As a last part, please delete all entries from the staging table.

You can use indexes on staging table to make the SP part even faster.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 DhruvJoshi