Currently we have two SQL Server instances, one is used for online processing (client tables..) and another instance for reporting purposes.
What we actually do for sync is a SQL Server Job that run on daily basis which extracts the data from the online system, and loads it into the reporting instance. This is done using stored procedures (incremental inserts based on date inserted).
This method has proven to be a bad idea. So we decided to change the way the data is getting loaded.
I've been searching for while now and I've found many solution, one of them is CDC change data capture
Currently CDC has proven that it can be useful (can be used also for fraud detection). But it seems that it has a huge impact on the performance of the tables.
Based on Stackoverflow users and also on articles, it is hard to make a decision, especially when we talk about a high transaction table.
So what is the most effective way to make extraction/loading of data in SQL Server?
Another requirement is that there is another job that run each 15 min to check client status updates which make the use of snapshot replication difficult
Version used is SQL Server 2008