重命名表会导致索引重建吗?

时间:2015-08-13 12:43:13

标签: sql-server indexing sql-server-2012 table-rename

问题已在标题中,但我会在这里提供一些背景知识。

我有一个表myTable,通过nHibernate从Web应用程序中查询。它包含500K行。 每隔一段时间(让我们说每15分钟一次。)我需要刷新这个表格内容,即删除所有内容并插入另外500K行(可能不同)。

免责声明:是的,我知道这不是正确的架构:-)但我还是需要理解这种行为。

由于插入大约需要60秒,这就是我这样做的方式:

  1. 将500K行插入myTable_backup
  2. myTable重命名为myTable_temp
  3. myTable_backup重命名为myTable
  4. myTable_temp重命名为myTable_backup
  5. 第2-4点用于快速交换表格,以便myTable几乎始终可用。

    尽管我有最好的意图,但是在尝试访问myTable时我得到了SQL超时 - 这种情况或多或少地发生在执行“重命名”的时候。

    我的问题是:为什么?

    可以,myTable不可用,因为500K插入后索引仍在重建吗?虽然它已经设法更改名称,但仍然有背景重新索引?

    如果是这样,可以在第1点和第2点之间明确执行的myTable_backup上重建索引,有帮助吗?

    然后弹出另一个问题,这是我对本文的官方问题:是否重点3 myTable_backup重命名为myTable导致索引重建?这对我来说似乎是一个奇怪的想法,但是它可以解释我的超时(索引重建大约需要10秒)。

    你可以帮忙吗?如果你不知道答案,或许你可以建议如何找出答案?

    谢谢, PKD

0 个答案:

没有答案