然而,没有索引的性能是如此之好,以至于在加载大量数据时临时删除所有索引是有意义的 - 同时任何其他SQL语句都不需要索引。这可以释放出图表中可见的显着加速,实际上是数据仓库中的常见实践。
我可以理解,在将数据插入空表之后创建索引是更有效的方法。但是,尽管将数据插入索引表的速度较慢,但我认为重新创建索引也非常昂贵。
所以我的问题是,在插入之前表中是否存在大量的行时,它是否也更快?如果是,那么新行的比例是多少?如何定义' Large'?
答案 0 :(得分:2)
这取决于。唯一可以确定的方法是使用您的(测试)数据和您的(测试)环境进行试用。
答案 1 :(得分:2)
正如其他人所说,“这取决于”。但值得解释的是,为什么这么看似简单的问题是如此复杂。
除了添加数据的百分比外,还有许多因素需要考虑:
INSERT STATEMENT
的成本。还有其他问题我没有想到。