40 crores = 400 Million right?
You should definitely look at incremental load and how to only load the new/changed records every time you refresh:
Another thing to think of would be segmenting. For example, do all users need to look at the data on the most detailed level or can you aggregate the data up for a dashboard/analysis level? Or does it maybe make sense to split the data into yearly .qvw files? Segmenting can be done in many ways and using Publisher the reduction can be automated. Using Document Chaining you can jump seamlessly from the dashboard or aggregated level to the segment you want to analyze.