gpt4 book ai didi

c# - SQL 服务器 2008 R2 : How do I "pause" a clustered index while the server is being written to?

转载 作者:行者123 更新时间:2023-11-30 17:13:12 25 4
gpt4 key购买 nike

我想知道是否可以在写入大量数据时“暂停”聚簇索引?

原因是:

  • 如果我在“DateTime”上有聚集索引,批量插入会很慢(10,000 行/秒)。
  • 如果我在“DateTime”上有一个非事件聚集索引,则批量插入速度很快(180,000 行/秒)。

我不介意聚集索引是否在一夜之间重建,例如从凌晨 1 点到早上 6 点。

最佳答案

您不能在禁用聚簇索引的同时仍然使用该表。

由于聚集索引IS THE TABLE被禁用意味着您无法访问任何数据。

From MSDN:

The data rows of the disabled clustered index cannot be accessed except to drop or rebuild the clustered index.

你可以...

  • 禁用任何非聚集索引并在一夜之间重建它们。这将有很大帮助
  • DROP 所有索引(包括聚簇索引)并插入,然后在一夜之间CREATE。不过,这将使表格基本上无法使用。

我的首选解决方案有点复杂:

  • INSERT 到与目标表具有相同聚集索引键的暂存表
  • INSERT 一夜之间从暂存到目标,然后根据需要更新索引

关于c# - SQL 服务器 2008 R2 : How do I "pause" a clustered index while the server is being written to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994050/

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