I don't understand how it could work with huge amount of data because the solution uses CHECKSUM function which is not reliable.
Example:
select binary_checksum('51;52;56;2204;') produces 1726190947
select binary_checksum('51;53;56;2205;') produces 1726190947
select binary_checksum('51;52;56;2205;') produces 1726190963
select binary_checksum('51;53;56;2204;') produces 1726190963
As you can see different input strings produces the same output.
Those cases are not so rare if if have to work with millions of records.
In general, we are using similar approach to load data to our DW but we had to write custom script component for comparing.