我有一张大桌子,希望在上面运行此查询:
ALTER TABLE Employee
DROP COLUMN Zipcode
Zipcode
数据类型为varchar
。这种方法不适合,因为它需要很长时间并且会增加日志空间,并且会持续数小时。谁能指导我一种不会影响数据库性能的独特且更复杂的方法?
最佳答案
实话实说,我认为您别无选择:ALTER TABLE
语句(例如删除列)在非常大的表上可能要花费很长时间,因此我认为您必须在找到一些体面的机会时确定机会之窗停机时间,然后去做。您可能会考虑在持续时间内将数据库日志模型从FULL
更改为SIMPLE
或BULK LOGGED
,以帮助减少日志写入次数,并可能减少所花费的时间,但这绝对需要您不必担心实时运行的时间。交易流量。
关于sql - 如何快速从包含6亿行的表中删除列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23430748/