使用2M记录删除表中的列

时间:2014-02-16 17:42:58

标签: sql-server relational-database bigdata

从包含约200万条记录的表中删除列的最佳方法是什么?

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

我使用的是MS SQL Server 2012 Standard。

2 个答案:

答案 0 :(得分:0)

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

如果不这样做,如果你真的必须保持系统24-7,那么这是一个不同的问题。在这种情况下,您需要能够记录事务,然后再将它们回滚到数据中。这可能相对容易,或者很难,具体取决于系统的复杂程度。换句话说,这将是一种在热的时候修改表而不会松动任何东西的方法。

(据我所知,一些更好的数据库可能内置了这个功能。您可能会寻找更强大的数据库。)

答案 1 :(得分:0)

我在其中一个客户端网站遇到同样的问题。这是我做的,它只需要更多的工作,但我觉得非常有用。

  1. 为ex:Person_1(但是'_1')创建完全相同的表格,以区别于原始表格。

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

  3. 将列放在原始表格中。

  4. 关注STEP2(由于您已删除原始表格,因此不会映射一列

  5. 检查数据是否相同,您可以删除表格(Person_1)。