gpt4 book ai didi

sql - 为什么我必须在插入超过 150,000 条记录后重建表的索引?

转载 作者:行者123 更新时间:2023-12-02 01:47:10 24 4
gpt4 key购买 nike

我有一个日常流程,将大约 150,000 条记录导入两个表,然后将它们连接起来与其他数据进行比较。

我在表上创建了索引,这使得比较过程非常快。不幸的是,在导入过程之后,我的索引上的碎片猛增,通常超过 50%。然后我必须重建索引才能运行比较查询。

这对我来说没有意义。插入数据时,索引不应该适本地自行更新吗?索引上是否有任何属性会影响此行为?

编辑:一些附加信息——我有两个表。在导入过程中,一个表通过插入/选择语句添加了大约 150,000 行。另一个表在应用程序级别从 SQLBulkCopy 获取 150,000 行。

最佳答案

但是索引正在正确地 self 更新。
除非您完全按照索引的顺序添加数据,否则索引将会碎片化。

一些需要考虑的事情:

  • 可以按照索引的顺序插入数据吗?
    这将减少碎片。
  • 考虑删除索引,插入数据,然后重建索引。
    如果您获得 50% 的碎片,那么这很可能会更快。碎片化的索引会减慢插入速度。
  • 如果您必须让索引保持热状态,请考虑 50% 的填充因子。
    这将显着降低插入碎片的速度。

关于sql - 为什么我必须在插入超过 150,000 条记录后重建表的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com