any better way for data archiving?
This is a common issue with systems that need to retain large/indefinite amounts of historical data online. You have a few options depending on your predilections/restrictions.


Stretch Database in SQL Server 2016 is designed specifically to
solve this type of problem. Historical data gets moved the Azure so the local dataset is much smaller plus computations on the historical data is done in Azure, not your local server. However, it requires Azure. It can
be a secure as you need it to be but if you are subject to
regulations that prevent you from using public clouds, then this
won't work for you. 
Partition the large tables and place cold data in different files/filegroups. That helps with some operations but it does add sizeable complexity to your regular maintenance tasks. Lots of good guidance published by Microsoft, MVPs and others on designing and managing partitioned tables for cold data so you're not breaking new ground here.
Put everything in solid state storage devices. This does not solve
the problem but will sufficiently mask the performance problems so 
you'll breathe easy for a while. If SSDs become bottlenecked, switch
to Fusion IO. When that gets pegged, there'll probably be some newer tech.
Btw, this is not a recommended approach but if you need a bandaid
until you can implement a real solution, this does work. The other minor issue here is the high cost.


Highly recommend you look at #1 first followed by #2.