通常,最佳做法是保持索引和约束不受市场影响,除非它们将直接用于报告。索引和约束可能严重影响您的ETL时间(特别是通常进入仓库的数据量)。
我发现最好的方法是在你的所有表上都有一个单独的PK(包括事实,因为我有复合键,如果必须的话,我只需要对复合词进行哈希处理以获得PK)。拥有PK(即标识列)为您提供自动生成的索引,在构建多维数据集时快速连接,以及非常快速的插入。
如果您要进行报告,请按原样构建索引,但请确保在ETL过程中禁用然后重建索引。否则,批量插入需要一些时间(在某些情况下,提交数小时)。