• If you are going to drop and rebuild you dimensions, you need to be really careful that the keys are always alocated in the same order or you could end up associating the facts with the wrong dimension records.

    I would say that all tables in the DW model should be populated using SSIS packages as you then have a single point of entry. The packages might just call a stored procedure, but at least you know where to look for the start point. If some of it runs from SSIS, others from agent jobs, some is inserted directly by the source system through a linked server then maintenance can become a nightmare. Also if it is all done by SSIS you can build a framework that does logging a failure handling which you can't do if something else is drivent the ETL process.