我手头的问题是我需要从表中删除大约 60M 记录,而不会导致与使用该表的其他进程发生死锁。在这一点上,我几乎已经使用 while 循环删除了记录,该循环一次只处理大约 1M 条记录,但是它需要一整天。
Q1:从表中删除大量数据、保持表在线以及对需要在 MS SQL Server 2005 中使用该表的其他资源的影响最小的最佳方法是什么?
Q2:有没有办法像在 Oracle 中一样在 SQL Server 中实现单独的行锁定(而不是表锁定)?(注意回答这个问题可能会回答 Q1)。
A2:正如@Remus Rusanu 告诉我的那样,有一种方法可以通过删除来进行行级锁定。