从包含约200万条记录的表中删除列的最佳方法是什么?
该表包含用户数据,我无法长时间锁定它。我担心简单的DROP COLUMN可能太慢了。
我使用的是MS SQL Server 2012 Standard。
答案 0 :(得分:0)
首先克隆它然后尝试下降并查看它需要多长时间。还要弄清楚你的系统最轻松使用的时间,比如凌晨3点或其他什么时候再做。
如果不这样做,如果你真的必须保持系统24-7,那么这是一个不同的问题。在这种情况下,您需要能够记录事务,然后再将它们回滚到数据中。这可能相对容易,或者很难,具体取决于系统的复杂程度。换句话说,这将是一种在热的时候修改表而不会松动任何东西的方法。
(据我所知,一些更好的数据库可能内置了这个功能。您可能会寻找更强大的数据库。)
答案 1 :(得分:0)
我在其中一个客户端网站遇到同样的问题。这是我做的,它只需要更多的工作,但我觉得非常有用。
为ex:Person_1(但是'_1')创建完全相同的表格,以区别于原始表格。
使用IMPORT AND EXPORT WIZARD
将原始表格中的数据传输到新表格。
将列放在原始表格中。
关注STEP2
(由于您已删除原始表格,因此不会映射一列
检查数据是否相同,您可以删除表格(Person_1
)。