创建索引需要多长时间?

Nei*_*ght 10 index sql-server-2008-r2

我有一个包含超过 7000 万行的表,我查看了已确定缺少索引的执行计划。不久前我拍了一张数据快照,并在本地测试数据库(创建速度很快)上创建了这个索引,而改进正是实时系统所需要的。我想知道的是,有没有办法告诉在实时系统上创建需要多长时间?

Rob*_*ino 8

是的,这取决于很多因素,除非你尝试,否则无法真正知道。

我刚刚为超过200 多万行的BigInt类型的单列构建了一个索引,但是花了3 分钟

当然,我的硬件与你的不同,我的数据库版本与你的不同等等,但现在你有一个真实世界的例子来给你一个大概的想法,而不是介于皮秒和宇宙生命周期之间的某个地方。

  • 我正在我的 PC 上的开发版本上索引 2 亿行 nvarchar(MAX)。完成后我会留言给我的继承人汇报。:P (10认同)
  • 哈哈!情况并没有我想象的那么糟糕。我没看到什么时候结束的,不过不到2个小时。当我在生产服务器上运行它时,大约花了 25 分钟,但是我们的查询有多么不同。 (6认同)
  • @BrienMalone - 哎哟,已经两天了,还没有回复! (3认同)
  • 我在 12 分 13 秒内在 64 位 Intel w/ 2 核 @ 1.8 GHz 上索引了 650 万行的 varchar(32) (2认同)

Ole*_*Dok 7

实际上 - 这取决于很多事情,比如

  • 你使用的硬件
  • 索引的宽度
  • 当前负载
  • ...

如果索引相对较宽 - 可能需要几分钟到几小时。

如果您在 Sql Server 企业版上拥有数据库,那么您可以选择创建索引WITH ONLINE=ON- 完成它需要更多的时间和空间,但不会停止涉及表的其他处理

  • 不,没有任何**可靠的**方式可以这么说 (2认同)