Gen*_*ari 5 sql-server constraint primary-key
我已经看到很多关于向大型数据库表添加新主键列的信息,但我的情况有些不同。
我有一个没有主键的大表(约 90,000,000 条记录)。但是,它确实有一个“RowID”列,它是一个标识列。它还在 RowID 列上有一个唯一索引。
我所有的研究都表明,没有主键的表是一种糟糕的设计,如果可能的话应该去掉。在我的特殊情况下;这会导致问题,因为如果找不到主键,实体框架会将表映射为只读视图。
我想在 RowID 列上的表中添加一个主键约束。我希望因为它没有添加新列,并且该列上已经有一个唯一索引,所以这将是一个小操作;然而,从测试运行来看,这将需要很长时间。
长时间无法访问此表会导致整个业务出现问题。我知道另一种选择是使用新模式创建一个新表,并将所有数据从旧数据复制到新数据。但这也会导致我们需要长时间锁定表。
当您已经有一个带有唯一索引的标识列时,有没有办法更快地添加主键约束?
小智 1
您的假设是创建新表时会发生锁定。如果您使用正确的查询提示并制定良好的行动计划,则这是错误的。我推荐以下内容:
关于锁的话题。正如我所见,你有几个选择:
这实际上取决于您的具体需求,这三个中哪一个是您最好的 COA。我建议咨询业务部门以确定中断是否真的是一件坏事,如果是,请咨询开发人员以确定最适合该任务的锁定级别。
归档时间: |
|
查看次数: |
1204 次 |
最近记录: |