Actually, it is no way for us to tell you how you should do it, as it depends on a lot of factors, like version of SQL Server and how your application is working and of course how large amount of data you've got. Among your options you have:
* Rewrite Stored Procs/Ad Hoc queries to move data (delete from ... output) when certain conditions are met.
* Use SSIS/Stored Procs to move data on a regular basis
* Implement partitioning