2016-11-25 43 views
0

我很感兴趣地听到,因为我工作,对数据仓库加载一个完全不同的看法当前网站创建和加载数据的其他开发人员的意见。MSSQL创建并加载数据

目前用于加载一个事实表中的协议具有若干步骤;

  1. 删除旧表
  2. 重新创建表,没有PK /聚簇索引
  3. 负荷清洗/新数据
  4. 创建PK &指标

我不知道有多少工作才真正进入在步骤4的封面下?数据在没有Clusterd索引的情况下加载,所以我假设数据加载的自然顺序定义了它在磁盘上的顺序。当第4步创建一个主键(聚簇)时,它将按照该顺序将磁盘上的数据重新排序。加载数据并且已经定义PK /聚簇索引从而减少服务器工作负载会不会更好?

+0

只有当数据已经以与索引相同的顺序排序时。否则索引将不得不不断更新 –

+0

@RichBenner这是不正确的。聚集索引会影响行的实际存储顺序。行被移动 –

+0

@PanagiotisKanavos感谢您更新我,我删除了不正确的评论。 –

回答

0

inserting当大量的记录,在更新索引的开销往往可以不是简单地从头创建它大。性能增益来自inserting到堆上,这是将数据导入表的最有效方式。

你可以知道,如果你的导入策略是保持不变的指标更快,唯一的方法,将在自己的环境中测试都和比较。

0

了我的想法索引器适合选择。并且可能对DML操作不利。

而且如果要加载的数据量庞大,这意味着你需要更新索引器的每一次插入。这可能会滞后于表现。有时它可能会超出限制。