不同锁定方案对数据库的影响细节?

men*_*rgo 5 sql database performance locking

我正在为一张大桌子测试不同的锁定方案,超过400万行,预计会增长到1000万.

我使用SyBase的经验:
ALLPAGES,极慢BCP(in)并使用属于主键的字段进行更新.
DATAROWS,快速BCP,PK中字段的快速更新,最快选择.
DATAPAGES,最快的BCP和更新,以及比ALLPAGES更快的选择,但不如DATAROWS快.

我不是专家,但在我看来,DATAROWS比DATAPAGES阻止更多,而且我没有看到DATAPAGES的任何缺点.

我能找到的唯一支持DATAROWS的点是在使用主键的选择中性能稍快,但DATAPAGES在更新时要快得多.

在实践中的任何经验?
这种锁定方案如何比较?
每个人的利弊?

我试着读一下它背后的理论,但对我来说并不是很清楚.

Geo*_*tas 0

锁定是一种并发控制机制。它确保事务内和事务间数据的一致性。在多用户环境中需要锁定,因为多个用户可能同时处理相同的数据,因此您不应该根据 BCP 速度等来选择锁定方案。

对于使用所有页锁定或数据页锁定的表,页锁或表锁

对于使用数据行锁定的表,行锁或表锁

serializable read但是所有页锁定表通过在事务的索引页上持有锁来防止幻像(可以在结果集中出现或消失的行)

一般来说,您应该对由于更新和选择而存在锁争用的表使用数据行或数据页锁定。

在此处阅读有关锁定和性能的更多信息