I have a package which reads data from a table and based on a column value stores the records in two other tables. Package uses Transaction required property. It was running smooth until recently when I created a non-clustered index on source table to improve performance. The package denies to proceed execution after showing the Progress as "Validation has started".
Two things solve the problem:
- Use a clustered index instead of non-clustered
- Set ValidateExternalMetadata property to False
I don't have to use both but one out of them and the package runs smooth. I opted for option 1 but I don't understand what is happening under the hood. My questions are,
- What exactly are the things that happen when you turn the property false, apart from checking column meta data?
- Why is non-clustered index causing a validation trouble?
PS: There were no indexes on the table before.