唯一的另一种选择是手动执行许多RDBMS系统要做的…-
创建一个新表
然后,您可以一次复制一个块中的旧表的内容。尽管始终对源表上的任何INSERT / UPDATE /
DELETE都保持谨慎。(可以通过触发器进行管理。尽管这会导致速度变慢,但这不是锁…)
完成后,更改源表的名称,然后更改新表的名称。最好是在交易中。
完成后,重新编译使用该表的所有存储过程等。执行计划可能将不再有效。
编辑:
关于此限制有点差的一些评论。所以我想我应该对它放一个新的角度来说明为什么它是如此…
- 添加新字段就像在每一行上更改一个字段一样。
字段锁比行锁要难得多,不用管表锁。
您实际上是在更改磁盘的物理结构,每条记录都会移动。
- 这的确像是对整个表的更新,但影响更大……
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)