我想在一个包含大约1200万条记录的表上运行以下代码。ADD c1 int NULL;ADD c2 bit NOT NULL我已经在阶段中完成了这项工作,时间似乎也不错,但在生产环境中完成这项工作之前,我想知道在创建新列期间(特别是在指定了默认值时)表上的锁定是如何工作的。所以,有人知道吗?是锁定整个表,还是在插入默认值的过程中逐个锁定行?还是会发生完全不同的事情?
我知道上面有类似的问题,但有些是十年前的,其他的没有有用的答案。“Relational vs Non-Relational DBMS”的每一篇文章都指出,由于ACID事务、引用完整性约束和一致性,关系DBMS很难扩展。但另一方面,像Amazon和金融服务这样的巨头继续使用关系型DBMS,而且它们在可伸缩性方面似乎没有任何问题。谢谢!
我在SQLServer2005中有一个表,其中包含一些项目的changelog数据。这些都存储在一个表中,因为有数百个项目,并且可以查询projectlog表中的内容,例如每天或每个人的活动。projectchanged datetimeprojectserial int我想在添加行时为每个项目生成一个连续的项目序列projectserial),0) from projectlo