【问题标题】:SQL server index creation vs enabling indexSQL 服务器索引创建与启用索引
【发布时间】:2015-10-10 12:24:22
【问题描述】:

在 sql server 2008 r2 中有一个包含大约 5000 万条记录的表。通过 SSIS 插入表需要很多时间,因为我在该表上有五个我无法删除的非聚集索引。考虑在 ssis 包运行之前和之后删除和创建索引,但这也需要很多时间。想了解禁用和启用索引是否会给我带来更好的性能。

【问题讨论】:

  • 是什么让您认为索引导致性能不佳?
  • 当我删除索引并加载数据时,它需要 1% 的时间来加载索引

标签: sql ssis sql-server-2008-r2 non-clustered-index


【解决方案1】:

看看下面 JNK 的回答
https://dba.stackexchange.com/questions/19890/when-should-indexes-be-dropped-and-recreated

  1. 禁用非聚集索引,保持聚集索引不变
  2. 将原始数据加载到您的数据表中
  3. 重建 NC 索引

【讨论】:

  • 即使禁用和重建也无济于事..我们还有其他选择吗?
  • 您是否在选择中使用了 ORDER BY 子句? (输入是否已排序?)如果是,则尝试插入未排序如果否,则尝试插入已排序
  • 我正在尝试从平面文件加载数据,但它没有排序。我无法控制在表上运行的选择查询。 :(
  • 由于您是从平面文件加载,您是否尝试过使用 BCP 加载数据?
  • 请参阅此处的“将数据导入表” - simple-talk.com/sql/database-administration/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 2015-01-21
  • 2015-01-06
  • 1970-01-01
相关资源
最近更新 更多