An Incremental load is the best solution to reduce your load delay. You'll have to figure out how you can detect which records are new/changed and just load/add those. But the simplest approach is to use a record timestamp in your database table. An incremental load will first lift the last-reload-time from the QVD that is present on the QlikServer machine, and then only load records that are newer. Then the historical qvd will be added to these records and the result will be saved as the new qvd.
I would not split the resulting qvd, as this may make the reload script incredibly complex and might take longer to use/reload these partial tables.
Whether you should take the facts reload out of the other reload chain depends on your situation. It sounds like a good idea while you are converting the reload of the large facts table. And you could run some reloads in parallel that way (also a possible time-saver)
Sorry, I just realized that the fact table data varies based on the client for whom we want to create the qv document.
so, if i want to implement incremental load, i need to keep ALL previously created client qvds in a folder, so that qlikview will pick the particular client qvd and check its records and load only the new or updated records from source database?
SET vClientID = 'X'; //changed from UI
Also, we sometime create the qvd for 1 year or 2 years or some date range, for specific client.
So, if my old qvd has 3 years data and i want to create new qvd for 2 years data and i expect some changes in source database, Does incremental load support this?