锁和事务的隔离级别一起起作用的
通常使用readcommit隔离级别,这样防止脏读,但有非重复读,和幻像数据问题
sql server加锁的范围比较大些,而anywhere是按行加锁的比较灵活。
举例
sql server
test
id name
1 11111
3 3333
1。
begin tran
insert test values(2,'111')
delete from test where id=3
2.select * from test where id=1
被锁定要等待1完成后才能执行
anywhere
同样的语句,2直接查询出结果,不会被阻塞
相当于 sql server加上readpast也啵、跳不过去
通常使用readcommit隔离级别,这样防止脏读,但有非重复读,和幻像数据问题
sql server加锁的范围比较大些,而anywhere是按行加锁的比较灵活。
举例
sql server
test
id name
1 11111
3 3333
1。
begin tran
insert test values(2,'111')
delete from test where id=3
2.select * from test where id=1
被锁定要等待1完成后才能执行
anywhere
同样的语句,2直接查询出结果,不会被阻塞
相当于 sql server加上readpast也啵、跳不过去
本文探讨了SQL Server与Anywhere数据库管理系统中锁机制的区别,特别是在读已提交(read committed)隔离级别下如何处理脏读、非重复读及幻象读等问题。通过具体的示例说明了两种系统在加锁范围上的不同:SQL Server倾向于锁定更大范围的数据,而Anywhere则实现按行加锁。
1062

被折叠的 条评论
为什么被折叠?



