2014-02-16 51 views
0

从大约200万条记录中删除表的列的最佳方法是什么?用2M记录删除表中的列

该表包含用户数据,我无法长时间锁定它。恐怕简单的DROP COLUMN可能太慢了。

我使用MS SQL Server 2012 Standard。

+1

2,000,000行*真*不是大数据。删除不包含外键引用的200万行的列在这里不到四分之一秒。先备份。 –

回答

0

首先克隆它并尝试下降,看看它需要多长时间。还要弄清楚什么时候你的系统最容易被使用,比如凌晨3点或者其他地方,然后再做。

如果你真的必须保持24-7系统,那么这是一个不同的问题。在这种情况下,您需要能够记录事务,然后将其转回到数据中。根据系统的复杂程度,这可能相对容易或困难。换句话说,这将是一种修改表格的方式,当它很热并且没有任何松动时。

(据我所知,一些比较好的数据库中可能有此内置功能。你可以找一个更强大的数据基础。)

0

我有同样的问题在客户现场的一个。这是我所做的,它需要更多的工作,但我发现非常有用。在最后PERSON_1(但“_1”)与原来的表来区分:

  1. 创建前完全一样的表。

  2. 使用IMPORT AND EXPORT WIZARD将数据从原始表传输到新表。

  3. 删除原始表中的列。

  4. 关注STEP2(不会有一列映射,因为你已经在原表中删除)

  5. 检查数据是相同的,你可以删除这个表(Person_1)。