不用锁定表就可以改变表吗?

不用锁定表就可以改变表吗?,第1张

不用锁定表就可以改变表吗?

唯一的另一种选择是手动执行许多RDBMS系统要做的…-
创建一个新表

然后,您可以一次复制一个块中的旧表的内容。尽管始终对源表上的任何INSERT / UPDATE /
DELETE都保持谨慎。(可以通过触发器进行管理。尽管这会导致速度变慢,但这不是锁…)

完成后,更改源表的名称,然后更改新表的名称。最好是在交易中。

完成后,重新编译使用该表的所有存储过程等。执行计划可能将不再有效。

编辑:

关于此限制有点差的一些评论。所以我想我应该对它放一个新的角度来说明为什么它是如此…

  • 添加新字段就像在每一行上更改一个字段一样。
  • 字段锁比行锁要难得多,不用管表锁。

  • 您实际上是在更改磁盘的物理结构,每条记录都会移动。

  • 这的确像是对整个表的更新,但影响更大……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4986344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存